그렇기에 새로운 버전을 만들기 전에 작업 디렉터리 내에서 변경 사항이 생긴 파일 중 ‘다음 버전이 될 후보를 선별하는 작업’이 필요합니다. 예를 들어 작업 디렉터리에 파일이 1,000개 있고 이 중 100개가 변경됐을 때, 100개 중 새로운 버전이 될 파일을 선별하는 작업이 필요하지요.
그래서 깃으로 버전을 만들 때는 작업 디렉터리 내에서 변경된 파일들 중에서 새로운 버전이 될 파일만 특별한 공간으로 옮기는 작업을 거치게 됩니다. 이 특별한 공간이 바로 스테이지입니다. 즉, 스테이지는 변경 사항이 있는 파일 중 다음 버전이 될 후보가 올라가는 공간인 셈입니다.
다시 말해, 우리는 버전을 만들기 위해 작업 디렉터리에 있는 파일에 변경 사항을 만들고, 이 변경 사항들 중 새로운 버전으로 만들려는 파일을 선별해 스테이지로 옮깁니다.
스테이지는 스테이징 영역(staging area) 또는 인덱스(index)라고도 부릅니다. 참고로 작업 디렉터리는 프로젝트가 위치한 공간이라 눈으로 직접 볼 수 있는 반면, 스테이지는 명시적으로 보이지 않습니다.
그림 2-4 | 버전이 될 후보를 스테이지로 옮기기