* Index와 objects 파일을 비교하면 커밋할 것이 있는지 없는지를 확인할 수 있다.
-> 예를 들어 working directory의 d1/f1.txt와 index의 d1/f1.txt의 내용이 일치한다면
현재 커밋할 것이 없다. ( working directory는 git bash에서 작업하는 디렉터리로 이해하면 된다.)
1. f1.txt 의 파일을 수정한 뒤 git status를 하면
f1.txt가 빨간색 텍스트로 표시된다.
-> 결국 gistory에서 working directory의 f1.txt의 내용과 Index상에서의 f1.txt의 내용이 다르면
파일이 수정된 것을 알 수 있다.
-> 이후 git add f1.txt를 한 뒤 다시 gistory를 reload 하면 수정한 내용이 반영됨을 알 수 있다.
f1.txt의 내용과 수정한 f1.txt의 내용이 같으니 git은 f1.txt파일이 커밋 대기상태임을 알 수 있다.
* git add 한 뒤 Index와 objects 파일 비교
-> object ID가 다르다는 것을 알 수 있다.(*중요*)
( 커밋하지 않아서 ID가 다르다. 이후 커밋하면 object ID가 동일해짐. )
-> 즉, 깃은 인덱스의 내용과 최신 커밋의 트리가 가리키는 f1.txt의 내용이 다르다면
현재 f1.txt는 index에 add가 되어서 커밋 대기상태임을 알 수 있다.
2. f1.txt 파일을 add한 뒤 commit 한다.
-> f1.txt 파일을 커밋한 뒤 reload 하면 최신 objects의 f1.txt의 오브젝트 ID+내용,
Index의 오브젝트 ID+내용 그리고 working directory 에서의 f1.txt의 내용이 정확하게 일치하기 때문에
git status를 했을 때 더이상 커밋할 것이 없다고 알려준다.
* commit
* Index
3. git status 명령어로 현재 상태를 확인한다.
* 참고 : working directory - index, staging area, cache - repository
*이 포스트는 이고잉님의 '지옥에서 온 Git'강의를 참고하여 작성했습니다.
URL : https://opentutorials.org/course/2708
'프로그래밍 관련 도구 > Git' 카테고리의 다른 글
Git(branch_log,diff 정리) (0) | 2017.08.02 |
---|---|
Git(branch 정리) (0) | 2017.08.02 |
Git(git commit의 원리) (0) | 2017.07.30 |
Git(objects 파일명의 원리) (0) | 2017.07.30 |
Git(git add의 원리) (0) | 2017.07.30 |