
Git은 파일을 Commited, Modified, Staged 이렇게 세 가지 상태로 관리합니다. 각 상태의 의미는 다음과 같습니다.
- Commited : 데이터가 로컬 데이터베이스에 안전하게 저장됨
- Modified : 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태
- Staged : 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태
Git Directory는 Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳으로 Git의 핵심입니다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 이 Git 디렉토리가 만들어집니다.
Working Directory는 프로젝트의 특정 버전을 Checkout 한 것입니다. 쉽게 말하면 내가 작업하고 있는 프로젝트의 디렉토리를 뜻합니다. Git Directory는 지금 작업하는 디스크에 있고 그 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와 Working Directory를 만듭니다.
Staging Area는 Git Directory에 있으며 곧 커밋할 파일에 대한 정보를 저장하는 곳 입니다.

1. Working Directory에서 파일을 수정합니다. 수정한 파일을 git add를 통해 Staging Area에 올립니다.
2. Staging Area에 파일을 Stage해서 커밋할 스냅샷(Snapshot)을 만듭니다.
3. Staging Area에 있는 파일들을 commit해서 Git Directory(Repository)에 영구적인 스냅샷으로 저장합니다.
파일의 상태
Git은 파일의 상태에 Untracked와 Tracked로 분류합니다.
- Untracked :
Git으로 버전 관리를 하지 않는 상태. 파일을 추적 관리하지 않는 상태
파일 생성 후 한번도 git add 하지 않은 상태 - Tracked : git이 관리하는 파일
- Unmodified : git add로 파일이 Staging Area에 올라갔지만 파일에 변경은 없는 상태
- Modified : 추적 관리하던 파일이 수정된 상태
- Staged : Staging Area에서 file이 staged되어 반영된 상태

'VCS' 카테고리의 다른 글
| [Github] 상태 확인 (0) | 2024.10.27 |
|---|---|
| [Github] 저장소 만들기 & add & commit (0) | 2024.10.27 |
| [Github] Git & Github 기본 개념 (1) | 2024.10.27 |
| [Github] IntelliJ .gitignore 파일 설정 (0) | 2024.09.23 |