Git에서 관리하는 파일의 4가지 상태 (1)   

 

  git이 파일을 추적하고 스테이지에 올리는지 과정을 살펴본다. 먼저, 프로젝트 폴더에 git 초기화를 하고 README.md와 app.js를 생성한다고 가정하고 모두 한 번도 커밋되지 않은 상태이기 때문에 파일 상태는 추적 안됨(untracked)이다. 

 

 

  다음으로, add 명령어를 통해 두 파일 모두 스테이지에 올리면 파일 상태는 스테이지됨(staged)으로 바뀐다. 

 

 

  다음으로, commit 명령어를 통해 하나의 버전으로 만들면 파일 상태는 수정 없음(unmodified)으로 바뀐다. 수정 없음으로 된 파일은 다시 수정을 할 수 있다.

 

 

 

  마지막으로, 다른 사람도 함께 협업 하기위해 push 명령어를 통해 원격 저장소에 업로드 하면 파일 상태는 그대로이다.

 

 

 

 


 

   Git에서 관리하는 파일의 4가지 상태 (2)   

 

  위에서 했던 작업에서 더 많은 작업을 한다고 가정한다. app.js 파일을 수정해서 파일 상태를 수정 없음(unmodified)에서 수정함(modified)로 바꾸고 app.css 파일을 새로 만들어 준다. 새로 만들었기에 파일 상태는 추적 안됨(untracked) 상태이다. 

 

 

   변경사항이 없는 README.md 파일은 스테이지에 올릴 수 없지만 add 하지 않아도 이미 올라가 있는 상태이며 나머지 두 파일은 모두 스테이지에 올린다. 이 때, 두 파일 상태는 스테이지됨(staged)로 변경된다. 

 

 

  커밋을 통해 버전을 또 하나 생성한다. 이 때의 커밋은 앞서 만든 커밋인 "프로젝트 초기화"와 연결되어 있기 때문에 git은 쉽게 app.js가 수정되었고 app.css가 추가되었다는 것을 알 수 있다. 커밋을 했기 때문에 세 파일 모두 수정 없음(unmodified) 상태로 변하게 된다.

 

 

  마지막으로,  push 명령어를 통해 원격 저장소에 업로드 한다. 이 때, 파일 상태는 그대로이다.

 

 


   정리   

  

 요약하자면 untraked(추적 없음), staged(스테이지됨), modified(수정함), unmodified(수정 없음), 총 4가지의 파일 상태가 존재하고 각각의 특징은 다음과 같다.