-
Git 영역
온라인 : remote repository (원격 저장소)
로컬 : work space (작업 공간), staging area (스테이징 영역), local repository (지역 저장소)
1. Git으로 파일 관리 시작(Git 초기화)
(1) git init
git init 를 입력한 위치의 모든 파일들이 git의 관리를 받음
(2) 기본 브랜치 이름 변경
git config --global init.defaultBranch main -> 앞으로 git init를 입력하면 설정되는 기본 브랜치 명을 변경하는 작업
git branch -m main -> 현재 위치한 브랜치의 이름을 변경하는 작업초반에는 master로 설정이 되어있는데 최근에 master이라는 표현이 인종차별적 뉘앙스를 가지고 있다고 여겨 기본 브랜치명을 main으로 많이 사용한다.
처음은 앞으로 git init를 입력하면 설정되는 기본 브랜치 명을 변경. 두번째는 현재 위치한 브랜치 이름을 변경.
(3) git 디렉토리는 숨김 처리가 되어있기 때문에 ls를 입력해도 폴더를 볼 수 없다.
숨김처리는 언제??? 파일 이름 맨 앞에 .이 붙으면 해당 디렉토리는 숨김처리가 된다.
ls -al : 숨김 처리된 디렉토리 및 파일을 모두 확인할 수 있다.
(4) Work space(Working tree, Work tree)
- git 영역 중 로컬의 작업 공간
- git은 자동으로 해당 공간을 스캔 -> 변경된 사항, 적절한 명령어 및 동작을 알려줌
- git init를 입력한 직후 다른 git명령어를 입력하지 않은 상태의 파일들이 존재하는 영역
2. git status : 파일들 상태 확인

git status 입력 on branch main
현재 브랜치는 main
No commits yet
아직 커밋하지 않은 상태
Untracked files: ~
Gti의 관리하에 있는 파일이 가질 수 있는 상태 중 하나
(use "git add <file>..." to include in what will be committed)
git add 파일_이름을 입력하면 커밋될 것들에 해당 파일을 포함시킬 수 있다
Git의 영역 중 로컬의 Staging area
nothing added to commit but untracked files present (use "git add" to track)
아직 add된 파일이 없고 untracked된 상태의 파일이 존재하니 git add 명령어를 사용하라.
(1) 파일 상태
Untracked
Git에 의해 파일의 상태가 축적되고 있지 않은 상태 -> 파일을 수정하더라도 Git이 변경 내용을 감지x
↓ Commit
Tracked (Unmodified, Modified, Staged)
GIt에 의해 파일의 상태가 축적되고 있는 상태 -> 파일이 수정될 경우 Git이 변경 내용을 감지
Unmodified : 파일 수정이 Git에 감지되지 않은 상태
Modified : 파일 수정이 Git에 감지된 상태
Staged : 파일이 Staging area에 존재하는 상태
(2) Staging area
Local repository에 저장할 파일들이 임시로 대기하는 영역
Work space -------> Staging area -------> Local repository
git add3. git add : Staging area로 파일 이동
"파일을 스테이징 한다."
git add 파일이름 : 파일 하나를 스테이징 할 경우
git add . : 디렉토리 내 모든 파일을 스테이징

git add . 명령어 실행 Changes to bo committed: ~
변화가 감지되었으며, 파일들을 Commit 할 수 있다. 해당 파일이 Staging area에 존재.
(use "get rm --cached <file>..." to unstage)
".."명령어를 입력하면 새롭게 스테이징한 파일을 Work space로 백업 가능.
git rm --cached 파일명
git status
git add .
git statusnew file: 파일명
Git이 새로운 파일을 감지.
아직 Untracked 상태이지만 Commit을 할 수 있는 단계
4. git commit : Local repository에 파일 저장 후 버전 기록
Commit
Local repository에 파일을 저장하는 행위를 말하며 저장과 동시에 파일의 버전 기록.
버전을 쉽게 관리하기 위해 커밋 메시지를 입력(요약하여 작성)
git commit -m "커밋 메시지" 
git commit -m "커밋 메시지" [main (root-commit) 9363449] First commit
커밋 실시한 브랜치(main), 커밋 해시의 앞 부분(9363449, 커밋마다 부여되는 고유ID), 커밋 메시지(First commit)
1 file changed, 1 insertion(+)
변경된 내용 출력 -> 파일이 Trached 상태로 변화됨.
Work space ----------------------> Staging area -----------------------> Local repository
git add . git commit -m "메시지"(1) git log : Commit 내역 확인
git log 
git log commit 9363449139531f327b98e755397d1fee1cadf14b
각 버전마다 부여되는 고유 번호인 커밋 해시
커밋 해시를 통해 버전을 식별할 수 있다.
HEAD -> main
main : 해당 Commit 내역이 main 브랜치 내에서 최신 Commit임을 나타냄.
HEAD : 여러 브랜치 중 현재 작업 중인 브랜치를 나타냄.
커밋 해시가 가리키는 Commit이 main 브랜치의 최신 Commit이며, 현재 위치한 브랜치가 main브랜치이다.
First commit
커밋 메시지
(2) git status : 파일 상태
git status 
commit 후 git status - Work space 내의 파일들의 상태가 모두 Unmodified(파일 수정이 Git에 감지되지 않은 상태)일 때 나타나는 메시지
- Commit한 파일이 Local repository에 저장되어있고, Local repository에 저장된 버전과 Work space 내의 파일 간에 차이가 없어 새롭게 Commit 할 것이 없으므로 파일 상태가 Unmodified로 변경된다.
- Unmodified : Tracked 상태 -> Git이 파일의 변경 내용을 지속적으로 추척한다.
-> 내용 수정을 하면?? 수정 후 git status 상태

파일 수정 후 git add Changes not staged for commit
Local Repository의 최신버전과 Work space의 파일 간에 변화가 발견되었지만 스테이징(git add) 되지 않았다.
modified : 파일명
변화가 감지된 파일(빨간색으로 표시)
(user "git add <file>..." to update what will be committed)
git add를 사용하여 스테이징 할 수 있다.
(use "git restore <file>..." to discard changes in working directory)
git restore를 사용하여 변경한 내용을 다시 되돌릴 수 있다.
-> 스테이징 후 상태

git add . 후 상태 Changes to be committed:
Local Repository의 최신버전과 Work space의 파일 간에 변화가 발견되었고 Commit이 가능한 상태
modified: 파일명
변화가 감지된 파일. 스테이징 된 파일(초록색으로 표시)
(use "git restore --staged <file>..." to unstage)
git restore --staged <file>을 사용하여 스테이징을 취소할 수 있다.
-> 커밋 후

5. git push : 작업물을 Remote repository(온라인 원격 저장소)로 업로드
온라인 저장소에 작업물을 백업하고 다른 사용자와 공유하는 것
Remote repository 만들기 -> Remote repository와 Local repository 연결 -> 업로드 (1) Remote repository 만들기
온라인에 Remote repository 만들어야 한다. 가장 많이 GitHub의 Remote repository를 가장 많이 사용한다.

원격 저장소 생성 완료 (2) Git remote : Remote repository와 Local repository 연결
git remote -v -> 연결된 Remote repository가 있는지 확인하는 명령어 -> Remote repository와 Local repository 연결

url 복사 git remote add 원격저장소별칭 원격저장소URL 원격저장소별칭 : Remote repository를 어떤 이름으로 로컬에서 사용할 것인지 정하는 것. origin을 관례로 많이 사용
원격저장소URL : 복사한 URL 붙여넣기

연결 완료 git remote rm 원격_저장소_별칭 -> 연결했던 Remote repository를 연결 해제할 경우 (3) git push : 작업물 업로드
git push origin main 
git push -> 홈페이지 새로고침

새로고침. 선택 
작성했던 내용들 6. git clone : Remote Repository의 코드를 로컬로 복사

Remote Repository의 URL 복사 git clone 복사한URL