모든 개발 언어의 flow는 정해진 생명주기를 갖는것처럼, 내가 개발하고 저장하는 파일들 역시 각자 상황에 맞는 생명주기를 갖고 있어요. 이번 포스팅에서는 git의 파일 상태 생명주기는 어떻게 이루어지는지 공부해볼까 해요.
git에서 관리되는 파일들은 총 4가지의 다른 상태를 가져요.
Untracked: Git이 관리하지 않는 상태
UnModified: Git이 관리하는 수정되지 않은 상태
Modified: 수정된 git이 관리하는(UnModified) 파일
Staged: Staging Area에 올라간 수정된(Modified) 파일
최초 로컬 환경에 파일을 만들게 되면 해당 파일은 Untracked 상태가 돼요. 이 파일의 존재여부는 오직 내 로컬에서만 알기 때문에 git은 이 파일이 어떤 내용을 담고 있는지 알 수 없기 때문에 Untracked(추적되지 않는) 상태가 되는거에요.
생성된 이 Untracked 파일들은 아직 어떠한 과정도 거치지 않았기 때문에 Working Directory에 존재하겠죠?
Working Directory에 존재하는 파일들은 원격 저장소로 가기 전 git add 를 통해 staging area에 모이게 돼요. 이때 이 Staging Area에 올라온 파일들의 상태는 Untracked에서 Staged 상태로 변경돼요.
staged 상태의 파일들은 commit을 통해 git repository로 이동되고 이때부터 해당 파일들은 git이 관리하는 수정되지 않은 Unmodified 상태가 돼요.
이 후 해당 파일들을 수정하고 다시 Source Control 창에 가보면
Modified 상태로 변경되어 있는 것을 확인 할 수 있답니다.