일공이의 IT노트

[Git & GitHub] 깃으로 버전을 관리하는 방법과 원리 총정리(2): 파일 상태 알아보기 본문

Work Tools/Git & GitHub

[Git & GitHub] 깃으로 버전을 관리하는 방법과 원리 총정리(2): 파일 상태 알아보기

일공ILGONG 2021. 1. 13. 23:13
이 글은 'Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문' 교재를 참고하여 정리한 내용입니다.

 

 

저번 포스팅에서는 깃 저장소와 버전을 만들고 커밋 내용을 확인하는 방법을 살펴보았다. 이번에는 버전을 만드는 단계마다 파일 상태를 알아보고 작업을 되돌리는 방법을 알아보도록 하겠다. 깃의 버전 개념과 버전을 다루는 법을 잘 익혀두면 실무에서 깃으로 협업할 때에 큰 도움이 될 것이다.

 

 

 

버전 만드는 단계마다 파일 상태 알아보기

깃에서는 버전을 만드는 각 단계마다 파일 상태를 다르게 표시하기 때문에 이에 익숙해진다면 이 파일이 어느 단계에 속하는지, 그 상태에서 어떤 일을 할 수 있는지 알 수 있다.

 

 

 

목차

목차를 클릭하면 해당 게시글로 더 빠르게 접근할 수 있습니다.

 

 

 

 

tracked 파일과 untracked 파일

이전에 커밋한 기록이 있는 파일을 수정한 hello.txt 파일과 새로 생성한 hello2.txt 파일을 작업하고 난 후에 상태를 살펴보면 다음과 같다.

 

 

  • Changes not staged for commit : 앞서 커밋했던 hello.txt 파일의 변경된 파일이 아직 스테이지에 올라가지 않았음.
  • tracked file : 한 번이라도 커밋을 한 파일의 수정 여부를 추적하고 있음.
  • untracked files : hello2.txt 파일은 한 번도 깃에서 버전 관리를 하지 않았으므로 수정 내역을 추적하지 않음.

 

tracked 파일이나 untracked 파일을 $ git add 함수를 통해 스테이지로 보내고 난 뒤 상태를 확인해보면 다음과 같다.

 

 

이를 커밋하고 난 뒤의 log 화면이다.

 

$ git log --stat 명령으로 커밋에 관련된 파일까지 함께 볼 수 있다.

 

 

 

unmodified, modified, staged 상태

깃의 커밋 과정 중에서 tracked 파일의 상태가 어떻게 바뀌는지 확인해 볼 수 있다.

 

 

unmodified 상태

파일이 모두 커밋되고 나서 작업트리에 아무 변경 사항도 없다면 'working tree clean'이라고 나타난다.

 

 

modified 상태

만약 hello2.txt 파일을 수정하고 다시 상태를 살펴보면, 'Changes not stage for commit'라는 메시지를 확인할 수 있다.

 

 

staged 상태

git add를 통해 수정된 파일을 스테이지에 올리면 'Changes to be committed'라는 메시지를 확인할 수 있다.

 

 

 

최종 정리

 

 

* 방금 커밋한 메시지 수정하기

=> $ git commit --amend