Git 3가지 상태 정리

Jeongkuk Seo
sjk5766
Published in
3 min readJan 5, 2019

Git의 3가지 상태를 몰라도 Git은 사용할 수 있지만 Git에 대해 잘 알기 위해선 3가지 상태에 대한 이해는 필수입니다. 본 포스팅에선 Git의 3가지 상태와 예시를 들어 이해를 돕도록 하겠습니다.

Git 3가지 상태

Git에서 관리하는 파일들은 modifed, staged, commited 이라는 3가지의 상태를 가집니다. 각 상태는 working directory, staging area (index 라고도 불립니다.), repository 영역으로 구분됩니다.

원격 repo로부터 git clone을 받을 경우, 해당 영역은 working directory가 됩니다. 그리고 file을 수정하면 그 파일은 modified 상태가 됩니다. 변경 된 파일을 local repo에 commit 하기 전에, git add 명령어로 staging area 영역으로 올리는데 이 때, 파일은 staged 상태가 되었다고 할 수 있습니다. 이 상태에선 commit을 할 수 있으며 commited 상태가 되면 local repo에 commit 되었다고 할 수 있습니다. 아래에선 명령어 수준에서 상태에 대해 설명하겠습니다.

아래에선 초기상태의 repo를 clone 받은 상황으로 first.txt 파일을 만들고 git status 명령어를 입력했을 때, 아직 git이 파일을 추적하지 않는 상황입니다.

git add 명령어로 Git이 파일을 추적하도록 만들고 상태를 보겠습니다.

위 화면에서 git status 명령어 결과로 Changes to be commited: 를 확인할 수 있습니다. 이 말은 파일이 staging area 영역에 있는 staged 상태입니다. 파일을 맨 처음 git에 add 할 때는 staged 상태가 됩니다. commit 명령어를 통해 commited 상태로 repo에 저장했습니다. 이상태에서 파일의 내용을 변경하겠습니다.

위에서 단순히 파일을 변경할 경우, working directory 영역에서 modified 상태가 되며 commit을 할 수 없습니다. git add 명령어로 staged 상태로 변경해야만 commit이 가능합니다.

--

--