Git이 tracked와 untracked 개념을 사용하는 이유는 시스템 부하를 줄이고, 좀 더 효율적으로 파일 이력 관리를 위한 것이다.
Working Directory <-> Stage
Working Directory는 사용자 작업 공간으로, 이 공간에 파일을 추가하거나 수정했다고 Git이 자동으로 관리를 해주지 않는다.
-> Working directory에 새로 생성된 파일은 모두 Untracked 상태이다.
git add .
git add를 통해 Tracked 상태로 변경할 수 있다. (Stage)
Stage는 Working directory에서 git add 된 tracked 파일을 관리한다.
Stage에 등록된(Tracked) 파일은 Git이 추적 관리한다.
앞에서 설명한 것과 같이 Git은 'Tracked 상태인 파일'만 수정 여부를 관리할 수 있다.
tracked 상태이면서 Stage에서 한 번도 수정되지 않은 원본 상태를 의미한다.
파일을 수정하지 않으면 계속 Stage 상태에 머무른다.
Ref: https://book.naver.com/bookdb/book_detail.nhn?bid=16293640