State | Locate | 설명 |
Commited | Git Directory | Git Directory 데이터가 로컬 데이터베이스에 저장된 상태 |
Modified | Working Directory(*) | 수정한 파일이 아직 로컬 데이터베이스에 저장되지 않은 상태 |
Staged | Staging Area(index) | Staging Area(index) 현재 수정한 파일이 곧 Commit할 상태 |
Tracking | State | 설명 |
Untracked | Untracked | 새로운 파일이 추가된 상태. (이전 Snapshot에는 없는 파일의 상태) |
Tracked | Unmodified | 아무런 수정이 없는 상태 (Clean한 상태) |
Modified | 파일이 수정된 상태. | |
Staged | Staging된 상태. (git add에 의해서 Staging Area로 들어간 상태. Commit으로 변하기 직전!) |
용어 | 설명 |
저장소 (Repository) | 작업자가 변경한 모든 내용을 추적하는 공간 |
작업 트리 (Working Tree) | 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점이다. |
체크 아웃 (Checkout) | 작업자의 작업트리를 저장소의 특정 시점과 일치 하도록 변경하는 작업 |
스테이징 영역 | 저장소에 커밋하기 전에 커밋을 준비하는 위치. 인덱스 영역이라고도 한다. (변경사항을 적용하기 전에 한번 더 변경사항을 정리하고 다듬을수 있는 기회를 제공한다. 변경사항을 추가하기 위해서는 git add 를 사용한다. 커밋 예정인 변경사항이 있다고 보면 된다.) |
브랜치(branch) | 특정 Commit을 가리키는 포인터이며 변경이 가능하다. 브랜치라는 것은 하나의 개발 라인을 의미 한다. 한개의 프로젝트에서도 여러개의 개발 라인이 존재 할 수 있다. 가장 기본이 되는 master branch에서 버그 수정이나 특정 기능을 추가하기 위해서 개발라인을 따로 두고 작업할 수 있다. 이러한 브랜치에는 HEAD(branch head)라는 것이 있는데 이는 한개의 브랜치 내에서 가장 최근에 커밋이 된 reference이다. 예를 들면 branch apple에 3개의 commit이 있는데 이중에 가장 최근에 추가된 커밋이 HEAD가 된다. |
태그(tag) | 특정 Commit을 가리키는 포인터. 단, 한 번 설정되면 변경할 수 없다. (포인터 상수 개념) |
HEAD | 현재 작업 중인 git에서 사용중인 Branch를 가리키는 포인터. |
master | master 브랜치는 복사해온 저장소 내의 HEAD의 복사본이다. |
origin | origin 은 단지 git가 복사해 온 저장소를 가리키기 위해 기본적으로 사용하는 이름 |