본문 바로가기

IT/git

[Git] git Source File Status

git file 상태 흐름도

git source file Status는 tracked와 untracked로 구분됩니다. 

tracked는 git에 의해 추적되고 있는 상태를 뜻하고, untracked는 추적되고 있지 않은 상태를 의미합니다.


  • Untracked
    • 원격 저장소에 올릴 필요가 없는 파일
    • 새롭게 생성된 파일

  • Tracked
  • git에 의해 추적이 되고있는 상태를 의미하고 총 3가지로 구성됩니다.
    • modified
      • 원격 저장소에 업로드 되어있고, 파일이 수정된 상태
    • unmodified
      • 커밋 된 상태
      • 원격 저장소에 업로드 되어있고, 파일이 수정되지 않은 상태
      • git status 명령어를 실행해도 화면에 노출되지 않는다.
    • staged
      • git add 명령어를 통해 index(stage) 저장소에 올라온 상태
      • modified 또는 untracked 일 경우 staged로 넘어 올 수 있다.

workspace안에 readme.txt파일 과 new_file.txt파일이 있다. readme.txt 파일은 원격저장소에 업로드 되었고
수정이 되지 않아서 unmodified 상태이다. 

new_file.txt 파일은 새롭게 추가되었고, untracked 상태이다.

readme.txt 파일을 수정하면 modified 상태로 변하게 된다.

위 두 파일을 git add 명령어를 통해 index(stage) 저장소로 이동해 staged 상태로 변경해보자.

git add .
git status

위 두 파일이 staged 상태로 변경된 것을 볼 수 있다. 이때 readme.txt 파일을 수정하면 다음과 같은 상태로 변경된다.

readme.txt 파일은 staged 상태와 modified 상태이다. 이 상태에서 commit을 하게 되면 현재 index(stage) 저장소에 있는 소스 들만 로컬 저장소로 이동하며, unmodified 상태로 변경된다.

이 경우 다시 git add 명령어를 입력하여 수정된 소스도 index(stage) 저장소로 이동시켜주자.

git add .
git status

이제 두 파일을 git commit 명령어를 통해 로컬 저장소로 이동 시켜 unmodified 상태로 변경해보자.

git commit --message "커밋메시지"
git status

unmodified 상태인 경우 git status 명령어를 입력해도 화면에 노출되지 않는다.

new_file.txt와 readme.txt 파일은 로컬저장소에 저장되어 있으며,
원격 저장소로 올리기 위해서는 push명령어를 사용해야한다.

git push 원격지명 브랜치명  

 

참조 : https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0