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 → StagedStaging 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 → Committedgit statusWorking Directory와 Staging Area의 상태를 표시Tracked 파일과 Untracked 파일, Staged 상태의 파일과 Modified 상태의 파일을 구분하여 보여줌git status 명령어를 사용하여 현재 Branch의 상태, Staging Area에 대기 중인 변경 사항, Untracked 파일 등을 확인할 수 있음git status
git addWorking Directory에서 생성된 파일을 Staging Area (Index)에 추가Modified 상태의 파일을 Staged 상태로 변경git add* 로 의도하지 않은 파일도 올라갈 수 있어 사용에 조심git add <file_name>
git commitWorking Directory에서 생성된 파일을 Staging Area (Index)에 추가Modified 상태의 파일을 Staged 상태로 변경-a 옵션으로 Staged 상태를 생략 가능 (Modified 상태에서 바로 Committed 상태로 변경)git commit -m <commit_message>
git commit -a -m <commit_message>
git ignoreGit에서 무시해야 하는 파일 패턴을 관리.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 rmGit에서 관리하는 파일 삭제Staging Area의 파일을 삭제하고 CommitWorking Directory에서도 삭제됨Tracked 상태의 파일을 Git 저장소에서 제거할 수 있음git rm <file_name>
git rm은 파일을 Working Directory와 Staging Area에서 모두 제거함git mvgit add 하는 동작과 같음git mv를 사용하면 파일의 변경 내역을 유지한 채로 이동할 수 있음git mv <old_name> <new_name>
git mv는 파일을 이동하고 새로운 위치에서 git add를 자동으로 수행함