Git에 대해 이해하기 위해서는 Git의 저장구조나 상태를 알아둘 필요가 있습니다.
Git 저장구조
Git은 이미지와 같은 저장구조를 띄고있습니다.
Local PC (로컬PC 환경의 구조)
- Working Directory (작업 공간)
현재 작업중인 Git 프로젝트 파일들이 있는 내 PC의 디렉토리 입니다.
.git 디렉토리를 제외한 프로젝트 디렉토리 내의 모든 공간이 Working Directory라고 할 수 있습니다.
- Staging Area (=index)
index라고도 하며 저장소와 작업 디렉토리 중간에 있는 공간이며, 준비 영역의 역할을 합니다.
파일들이 커밋 되기 전에 모여있는 임시 저장공간으로 모든 파일은 이 공간을 거쳐 저장소로 옮겨지게 됩니다.
git add 명령어를 입력하면 Working Directory의 변경내역을 Staging Area로 옮깁니다.
- Local Repository (=.git, Git Repository)
.git 디렉토리이며 커밋들이 스냅샷으로 기록된 곳입니다.
git commit 명령어를 사용하면 Staging Area의 변경내역들을 실제 스냅샷으로 묶어 Local Repository에 올릴 수 있습니다. 즉 한 버전의 구분점이 되며 이전 버전에서 해당 버전으로의 변경내역이 담겨 있습니다.
Server
- Remote Repository
원격 서버에서 관리되는 저장소 입니다. 이 곳에 올라온 커밋은 이제 다른 사람들도 참조 할 수 있습니다.(공개된 레포지토리 일 경우)
외부 저장소이기 때문에 로컬 환경의 파일이 손상되더라도 외부 저장소에 올라간 기록은 따로 유지됩니다.
Git 상태
git에 의해 관리되는 파일들의 상태(status)에 대해 알아보겠습니다.
- Untracked (추적되지 않음)
Working Directory의 파일은 크게 Untracked, Tracked의 두 가지 상태로 나뉩니다.
Tracked는 파일을 추적하는 상태이며
Untracked는 인덱스나 저장소에 한 번도 들어간 적이 없어 git이 신경쓰지 않아도 되는 상태입니다.
Tracked 상태의 파일들은 다시 Unmodified, Modified, Staged 3개의 상태로 나뉩니다.
- Unmodified (수정되지 않음)
저장소에 커밋된 파일이 수정되지 않은 상태입니다.
- Modified (수정됨)
이미 커밋 되었던 파일들이 수정됐음을 뜻하는 상태입니다.
- Staged/Indexed (인덱싱됨)
수정된 파일이 인덱스에 포함됐다면 staged 상태라고 볼 수 있습니다.
'Git' 카테고리의 다른 글
[Git 이론] Git 소개 (Git에 대하여, Git의 특징) (0) | 2021.11.13 |
---|