Untracked
파일은 현재 Git
저장소에서 관리되지 않는 파일을 의미한다.Working Directory
에 존재하지만, 아직 Staging Area
에 추가되지 않은 상태이다.git
에 의해 추적되지 않는 파일이다.Tracked
파일은 Git
에 의해 관리되는 파일로, 이미 Staging Area
또는 Commit
된 기록이 있는 파일을 말한다.Tracked
파일은 세 가지 상태 중 하나에 있을 수 있다:Staged
상태는 파일이 Staging Area
에 추가되어 Commit
을 할 준비가 된 상태를 의미한다.Commit
에 포함될 파일들이다.Committed
상태는 파일이 Git
저장소에 버전이 매겨져 저장된 상태를 의미한다.Committed
파일은 현재의 HEAD
와 동일하며, 변경되지 않은 상태이다.Modified
상태는 파일이 Git
저장소에 이미 버전이 매겨졌지만, 현재 수정된 상태를 의미한다.Staging Area
에 추가되지 않았고, 따라서 Commit
되지 않은 상태이다.Working Directory
에서 Staging Area
로 추가할 때 사용하는 명령어는 git add
이다.Untracked
파일이 Staged
상태로 전환된다.Tracked
상태로 들어오며, 버전을 매기는 대상으로 인식된다.git add <file_name>
Untracked
→ Staged
Staging Area
에서 Commit
하여 버전을 매길 때 사용하는 명령어는 git commit
이다.Staged
상태의 파일이 Committed
상태로 전환된다.Git
저장소에 기록된다.git commit -m "Commit message"
Staged
→ Committed
파일 추가 (Add File)
git add <file_name>
Untracked
→ Staged
커밋 (Commit)
git commit -m "Commit message"
Staged
→ Committed
git status
Working Directory
와 Staging Area
의 상태를 표시Tracked
파일과 Untracked
파일, Staged
상태의 파일과 Modified
상태의 파일을 구분하여 보여줌git status
명령어를 사용하여 현재 Branch
의 상태, Staging Area
에 대기 중인 변경 사항, Untracked
파일 등을 확인할 수 있음git status
git add
Working Directory
에서 생성된 파일을 Staging Area (Index)
에 추가Modified
상태의 파일을 Staged
상태로 변경git add*
로 의도하지 않은 파일도 올라갈 수 있어 사용에 조심git add <file_name>
git commit
Working Directory
에서 생성된 파일을 Staging Area (Index)
에 추가Modified
상태의 파일을 Staged
상태로 변경-a
옵션으로 Staged
상태를 생략 가능 (Modified
상태에서 바로 Committed
상태로 변경)git commit -m <commit_message>
git commit -a -m <commit_message>
git ignore
Git
에서 무시해야 하는 파일 패턴을 관리.gitignore
파일을 통해 특정 파일이나 디렉토리를 버전 관리에서 제외할 수 있음# 확장자가 .a 인 파일 무시
*.a
# 윗 라인에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않음
!lib.a
# 현재 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않음
/TODO
# build/ 디렉토리에 있는 모든 파일은 무시
build/
# doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음
doc/*.txt
# doc 디렉토리 아래의 모든 .pdf 파일을 무시
doc/**/*.pdf
git rm
Git
에서 관리하는 파일 삭제Staging Area
의 파일을 삭제하고 Commit
Working Directory
에서도 삭제됨Tracked
상태의 파일을 Git
저장소에서 제거할 수 있음git rm <file_name>
git rm
은 파일을 Working Directory
와 Staging Area
에서 모두 제거함git mv
git add
하는 동작과 같음git mv
를 사용하면 파일의 변경 내역을 유지한 채로 이동할 수 있음git mv <old_name> <new_name>
git mv
는 파일을 이동하고 새로운 위치에서 git add
를 자동으로 수행함