Git 교과서

코드 이력, 하나도 놓치지 마라!

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

Yes24 교보문고 알라딘 인터파크 길벗

스테이지


깃은 여러 단계의 논리적인 저장 공간을 가지고 있습니다.
스테이지(stage)임시로 저장하는 공간을 의미합니다. 스테이지 영역은 워킹 디렉터리에서 등록 제출된 tracked 상태의 파일들을 관리합니다.

또한 스테이지 영역은 나중에 학습할 커밋 작업과도 매우 연관이 많습니다. 최종 깃의 저장소기록되는 변경이력은 워킹 디렉터리에 존재하는 파일의 상태가 아니라, 스테이지 안에 있는 파일의 상태를 저장하기 때문입니다.


임시 영역


깃의 스테이지 영역은 워킹디렉터리저장소중간영역에 위치하는 임시 영역입니다.
워킹 디렉터리에 추가된 파일과 수정된 내용을 스테이지에 등록하여 변경 이력을 관리합니다.
또한, 스테이지에 등록된 내용을 최종 저장소에 기록할 수 있는 준비 단계의 성격을 가지고 있습니다.


스테이지 상태


스테이지 영역은 변경된 파일들의 이력을 관리하기 위한 목록 역할도 합니다.
스테이지에 등록되면 파일의 상태를 추적관리하고 이를 stage 상태라고 합니다. 또는, 변경 이력을 최종 기록하는 커밋을 하지 않는 경우 목록에서 제외 할 수도 있습니다. 이를 unstage 상태라고 합니다.


파일수정과 스테이지


워킹디렉터리에서 생성, 수정된 이력은 임시저장소인 스테이지 영역에 등록됩니다.
하지만 스테이지에 등록된 파일이 수정되면 계속 스테이지 영역에 남아 있지 않고 워킹디렉터리 영역으로 되돌립니다. 이를 기반으로 스테이지 영역에서는 변경이력을 기반으로 modifiled 와 unmodified 로 나누어 집니다.