Git 스테이징 영역은 다음 커밋에 담을 파일 상태를 준비하는 인덱스이다. 현재 작업 디렉터리 전체가 항상 커밋 대상이 되는 것은 아니다.
원리
git add는 호출 시점의 변경을 인덱스에 반영한다. 이후 파일을 다시 편집하면 인덱스와 작업 디렉터리의 내용이 서로 달라질 수 있다.
Git 작업 흐름 |
|---|
Git · Git 스테이징 영역 · Git 커밋 · Git 브랜치 · Git 병합 |
Git 리베이스 · Git stash · Git 태그 · Git revert · Git bisect |
예시
한 파일에서 버그 수정과 출력 문구를 함께 바꿨다면 git add -p로 필요한 부분만 선택해 작은 커밋을 만들 수 있다.
주의할 점
스테이징 후 추가 편집한 내용까지 기록하려면 다시 반영해야 한다. git diff와 git diff --cached가 비교하는 대상이 다르므로 저장 전 두 상태를 구분한다.