본문 바로가기

Tools/SCM

git의 내부 특성

Pro git 한글 번역본을 참고하였다.


Git 파일을 Commited, Modified, Staged 이렇게 가지 상태로 관리한다. Commited 데이터가 로컬 저장소에 안전하게 저장되었다는 것을 의미한다. Modified 수정한 파일을 아직 로컬 저장소에 Commit하지 않은 것을 말한다. Staged 현재 수정한 파일을 Commit 것이라고 표시한 상태를 의미한다. 가지 상태는 Git 프로젝트의 가지 단계와 연결되어 있다. Git Directory(Local repository), Working Directory, Staging Area 그것이다.



  • Git Directory(Local Repository) : Git가 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git Directory가 만들어진다.

  • Working Directory : 프로젝트의 특정 버전을 Checkout한 것이다. Git Directory는 지금 작업하는 디스크에 있고, 그 Directory에 압축된 데이터베이스에서 파일을 가져와서 Working Directory를 만든다.

  • Staging Area : Git Directory내에 존재한다. 단순한 파일이고 곧 Commit 할 파일에 대한 정보를 저장한다. 종종 인덱스(Index)라고 불리기도 한다.
만약, 원격저장소를 사용한다면, 아래와 같은 구성을 이룰 것이다. 협업을 위해서는 아래의 흐름을 이해해야 한다. 아래의 그림에서 원격저장소는 1 이상이 있다.