Git

[Git] Git 동작 흐름에 따른 파일 상태 변화 (status)

neck392 2024. 11. 2. 04:44

Git에서 각 파일들의 상태는 작업 영역에서의 변경 상황에 따라 변화한다.

Working directory에 존재하는 파일들은 아래와 같은 상태들로 분류할 수 있다.

  • Untracked : 새로 생성된 파일이며 버전 관리 이전의 상태이다.
  • Staged : "git add"를 사용하여 stage area에 추가된 상태이며 다음 commit에 포함된다.
  • Unmodified : 가장 최근 커밋 이후 파일에 아무 수정 사항이 없는 상태이다.
  • Modified : 커밋된 파일이 새로 수정되었지만 아직 "git add" 명령어로 stage area에 등록 전 상태이다.

여기서 Staged 상태의 파일은 2가지 상황으로 분류할 수 있다.

  1. Untracked 상태의 파일이 "git add" 명령어로 Staged 된 상황
  2. Modified 상태의 파일이 "git add" 명령어로 Staged 된 상황

1번 상황은 새로 생성된 파일에 해당하며 이미 존재하는 파일이 수정되면 2번에 해당한다.

생성된 파일은 아래의 그림에서 Staged -> Unmodified -> Modified 상태가 반복된다. "git push" 명령어 수행 시 Unmodified 상태의 파일이 Remote repository에 등록된다.

<파일 상태 변화 정리>


파일 상태 확인

<git status 명령어로 파일 상태 확인>

 

현재 Working directory의 파일 상태는 아래와 같은 명령어로 확인할 수 있다.

git status

 

첫 번째 줄에서 현재 main branch에서 작업 중인 것을 알 수 있고,

두번째 줄에서 원격 저장소 origin의 main branch와 동기화 되어 있는 상태임을 식별할 수 있다.

 

"Changes to be committed :"

위의 파일들은 현재 "git add" 명령어로 stage area에 등록된 staged 상태에 있으며 commit할 준비가 완료된 변경 사항들이다. "a.txt" 파일은 수정된 파일이며 "new2.txt" 파일은 새로 생성된 파일임을 알 수 있다.

git restore --staged <파일 이름>

위의 명령어로 stage area에서 제거할 수 있다.

 

"Untracked files :"

위의  파일들 즉, "new.txt" 파일은 아직 Tracked 되지 않은 파일로 commit에 포함시킬려면

git add <파일 이름>

위의 명령어로 stage area에 등록하여야 한다.

 

<VS code에서의 상태 표기>