본문 바로가기

ETC/Git

[Git] Git 의 세가지 상태

Git 은 세가지 상태를 가진다.

  • Modified 는 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 의미한다.
  • Staged 란 현재 수정한 파일을 곧 커밋할 것 이라고 표시한 상태를 의미한다.
  • Committed 란 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.

Git 이 관리하는 프로젝트는 .git directory 하는 하위 디렉토리를 가지는데 프로젝트의 메타데이터와 객체 데이터베이스가 저장되는 곳을 이야기한다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 또는 기존의 프로젝트를 init 하면 Git 디렉토리가 만들어진다.


working directory 는 프로젝트의 특정 버전을 Checkout 한 것이다. 

Git 디렉토리는 지금 작업하는 디스크에 있고, 그 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 디렉토리를 만든다.

실제로 내가 작업하고 있는 현재 위치라고 생각하면 된다!


staging area 는 Git 디렉토리 안에 있다. 단순한 파일이며, 곧 커밋할 파일에 대한 정보를 저장한다. index라고 불리기도 한다.

working directory 에서 modified 된 파일들을 staging 시키면 커밋한 준비가 됐다는 의미에서 staging Area 에 존재하게 된다.


Git 에서 기본적으로 작업을 하는 단계에 빗대서 세가지 상태를 이야기 하자면

[modified] working directory 에서 파일을 수정한다. ->

[staged] Staging Area에 파일을 Stage 해서 커밋할 스냅샷을 만든다. ->

[committed] Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장한다.


'ETC > Git' 카테고리의 다른 글

[Git] Git 저장소 생성  (0) 2016.09.03