참고
Pro Git을 읽다보면 index와 stage라는 용어를 자주 만나게 됩니다. 두 개념을 자주 혼동했던 기억이 있어 따로 정리하게 되었습니다.
본문 내용은 일부를 발췌하여 정리한 내용입니다. 보다 자세히 알고 싶다면 아래 항목을 참고해주세요.
Git이 관리하는 3가지 공간

Git이 관리하는 공간은 3개 입니다.
- Working Directory는 우리가 에디터에서 보고 있는, 실제 작업이 이루어지는 공간입니다.
- 파일의 편집과 저장으로 변경되는 내용은 이 영역을 벗어나지 않습니다.
- Index는 git add시 파일의 스냅샷이 기록되는 영역입니다.
- HEAD는 최신 commit을 가리키는 포인터이므로 그냥 commit이라고 생각해도 무방할 것 같습니다.
- git commit명령어가 실행되면 Index영역에 있던 스냅샷을 가져와 commit 반영합니다.
Git에 관리되는 파일의 4가지 상태

- Untracked : 아직 git에 의해 추적/관리되고 있지 않은 파일입니다. 새로 생성하거나 이동, git rm --cached명령으로 발생할 수 있습니다.
- Unmodified : 지난 커밋 이후로 변경점이 없는 파일입니다.
- modified : 지난 커밋 이후 수정하고 저장한 파일입니다. Vscode같은 경우 잘 보시면 파일 옆에 M자 표시가 나타나 있을 겁니다.
- staged: 지난 커밋 이후 수정, 저장하고 index에 등록된 파일입니다.
index는 깃이 관리하는 공간, staged는 파일의 상태
즉, 어떤 파일에 git add명령을 내리면 그 파일은 index에 등록된 것이고 동시에 staged된 것이라 생각할 수 있습니다.