Git
[Git] Git 3가지 상태
bellaah
2019. 8. 24. 14:13
Git에서 파일을 관리할 때 3가지의 상태가 존재한다. 그 상태와 의미에 대해 알아보자.
1. Git File 상태
- Committed : 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.
- Modified : 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다.
- Staged : 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
2. Git Area
이 세 가지 상태는 Git 프로젝트의 세 가지 단계와 연결되어 있다. 아래의 그림을 보며 Git directory, working directory, Staging Area 이 세가지의 영역을 알아보자.
Git directory는 Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git directory가 만들어진다.
working directory는 프로젝트의 특정 버전을 Checkout한 것이다. 그리고 file을 수정하면 그 파일은 modified 상태가 된다.
변경 된 파일을 local repo에 commit 하기 전에, git add 명령어로 staging area영역으로 올리는데 이 때, 파일은 staged 상태가 되었다고 할 수 있다. 이 상태에선 commit을 할 수 있으며 commited 상태가 되면 local repo에 commit 되었다고 할 수 있다.
단순히 파일을 변경할 경우, working directory 영역에서 modified 상태가 되며 commit을 할 수 없다. git add 명령어로 staged 상태로 변경해야만 commit이 가능하다.
Git으로 하는 일을 적어본다면 아래와 같다.
- working directory에서 파일을 수정한다.
- Staging Area에 파일을 Stage해서 커밋할 스냅샷을 만든다.
- Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장한다.