스테이지 영역의 상태


스테이지 영역은 워킹 디렉터리에 있는 tracked 상태의 파일들과 긴밀한 상관관계를 맺습니다.

워킹 디렉터리 안에 있는 파일들이 스테이지 영역으로 등록되면, 깃이 추적 관리 할 수 있도록 untracked 상태에서 tracked 상태로 변경됩니다. 스테이지는 tracked 된 워킹 디렉터리의 파일들을 추적할 수 있는 상태가 됩니다.


상태구분


스테이지는 워킹디렉터리의 tracked와 untracted 상태와 달리 자체적으로 또 다른 상태값을 가지게 됩니다. 스테이지의 또 다른 역할은 변경된 이력을 실제 저장소롤 기록을 하게 되는데, 기록을 할 수 있는 상태의 stage와 기록을 하지 않는 unstage 상태로 구분합니다.


stage 상태


깃의 저장소에 변경이력을 기록하기 위해서는 스테이지 영역안의 파일 상태가 stage 이어야 합니다. 워킹 디렉터리에서 새로 생성한 파일을 add명령을 통하여 변경이력을 등록하게 되면, 해당 파일은 untracked 상태에서 tracked 상태로 변경됨과 함께 스테이지 영역도 stage 상태가 됩니다.


unstage 상태


unstage는 stage 상태의 반대 입니다.
unstage 상태라면 파일에 변화가 있다는 것을 의미합니다.

스테이지 영역에 stage 상태로 등록되어 있는 상태에서, 워킹 디렉터리 안에 어떠한 변화가 발행하면 unstage 상태가 됩니다. 즉, 깃 저장소에 저장을 하기 위해서는 변경된 이력을 확정하여 기록을 해야 하는데, 중간에 내용이 변경되면 커밋하여 기록을 할 수 없기 때문입니다.

또 넓게 보면 아직 스테이지 영역으로 등록하지 않은 워킹 디렉터리 안의 파일도 unstage 상태라고 생각할 수 있습니다.
이때는 unstage 상태이자 동시에 untracked 상태입니다.

unstage 상태라고 해서 실제 파일이 없어지는 것은 아닙니다. 단지 파일이 수정되어 임시적으로 스테이지 목록에서 제외된 것입니다. git add 명령어를 사용하면 스테이지에 다시 추가할 수 있습니다.


깃교과서

버전 관리 시스템의 이해와 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지
깃, 소스트리, 깃허브로 실습하며 기본기를 탄탄하게 다진다!