깃은 파일을 세 가지 상태인 수정된 상태(modified), 준비 영역에 추가된 상태(staged), 제출된 상태(committed)로 관리합니다. 깃으로 관리하는 파일을 수정하면 수정된 상태로, 수정한 파일을 제출하려고 준비 영역에 추가하면 준비 영역에 추가된 상태로, 작업을 로컬 데이터베이스에 저장하면 제출된 상태로 각각 바뀝니다.
‘13.2절 깃 시작하기’에서 깃 명령어를 살펴보겠지만 기본적으로 파일을 관리하는 흐름은 파일의 세 가지 상태 변환과 밀접한 관련이 있습니다. 작업 디렉터리(working directory)에서 파일을 수정하고, git add 명령으로 수정한 파일을 준비 영역(staging area)으로 보낸 후 git commit 명령으로 준비 영역의 파일을 제출(commit)해서 저장소(repository)에 저장하는 과정으로 파일 관리를 진행합니다(그림 13-2).
▲ 그림 13-2 깃으로 파일을 관리하는 절차