Git으로 관리되는 파일은 일종의 '상태 (status)'를 가진다
상태는 크게 두가지로 나눠진다.
추적되지 않고 있다는 뜻으로, Git에 의해 파일 변동사항이 전혀 추적되고 있지 않는 상태를 말한다. 예를 들어, 파일을 새로 생성하고 그 파일을 한 번도 git add 해주지 않았다면 이 상태로 존재한다.
파일이 Git에 의해서 변동사항이 추적되고 있는 상태이다. 이 상태는 다시 그 특성에 따라 3가지 상태로 나눌 수 있다.
1) Staged 상태
파일의 내용이 수정된 후에, staging area에 올라와있는 상태를 말한다.
새로 생성한 파일이나 한번이라도 커밋에 포함됐었던 파일을 수정하고 git add를 했을 경우 이 상태에 놓여있다.
2) Unmodified 상태
최신 커밋의 모습과 비교했을 때 현재 파일 내용 상 바뀐 게 없다면 Unmodified(수정되지 않은, 변한 게 없는) 상태인 파일이다.
커밋을 하고 난 직후에는 working directory 안의 모든 파일들이 이 상태가 된다.
3) Modified 상태
최신 커밋의 모습과 비교해보았을 때, 바뀐 내용이 있다면 Modified(수정된) 상태이다.
Add the file
: Untracked 상태의 파일을 처음으로 git add 해주면 Staged 상태가 됌
Edit the file
: 최신 커밋과 비교했을 때 차이가 없는 Unmodified 상태의 파일의 내용을 수정했을 경우 Modified 상태가 됌.
Stage Modified file
: Modified 상태의 파일을 git add 해주면 Staged 상태가 됌.
Remove the file
: 파일을 삭제하면 당연히 Git에서 더이상 인식이 되지 않음
Commit
: 커밋을 하면 staging area에 있던 파일들이 커밋에 반영되고, 이제 모든 파일들은 최신 커밋과 차이가 없게 되어 Unmodified 상태가 될 것.