버전관리
- 최초 버전의 파일에서 수정된 부분 (Diff)만 저장합니다.
- Git의 경우 파일 수정 시 스냅샷을 저장합니다.
(단, 수정사항이 없다면 저장하지 않습니다.)
Git의 영역
Working Directory
- 실제 작업 공간입니다.
- ADD 시 Staging Area로 이동합니다.
Staging Area (Index)
- ADD 시 이동하는 공간입니다. (버전 생성 전 공간)
- COMMIT 시 .git Directory로 이동합니다.
(Staging Area에서 COMMIT 가능)
.git Directory (Repository)
- COMMIT 시 버전이 생성됩니다. (버전 관리 공간)
Git 파일 상태
MODIFIED
- 파일을 수정한 상태입니다.
(COMMIT하지 않은 상태)
STAGED
- 파일 수정 후 COMMIT을 준비하기 위한 상태입니다.
COMMITTED
- COMMIT되어 .git Directory에 버전이 저장된 상태입니다.
- 다시 파일을 수정하는 경우 MODIFIED 상태가 됩니다.
Git 파일 라이프사이클
UNTRACKED
- Working Directory에만 존재하며, 아직 Git이 관리하지 않는 상태입니다.
- Git이 관리하기 위해서는 ADD를 통해 Staged 상태로 변경해야 합니다.
STAGED (TRACKED)
- ADD를 통해 Staging Area로 이동한 상태입니다.
- COMMIT이 가능한 상태입니다.
UNMODIFIED (TRACKED)
- COMMIT을 통해 .git Directory로 버전이 생성된 상태입니다.
- COMMIT 이후 아직 수정되지 않은 상태입니다.
MODIFIED (TRACKED)
- COMMIT 이후 파일이 수정된 상태입니다.
- 다시 Staging Area로 옮긴 후 COMMIT을 진행해야 합니다.