git status
file1.txt, file2.txt, file3.txt 의 내용이 저장되어있는 해쉬 key 값이 저장되어있었다.
정리해보면, commit 을 하면 "파일 내용을 가리키고있는 해쉬 key 값을 저장하고 있는 objects 폴더의 파일"을 가리키는 해쉬 key 값이 저장된다.
file2.txt 의 내용을 test2 로하고 Commit 을 3으로 저장해보고 다시 봤다.
objects 폴더에 새로운 폴더가 생기고, parent 라고하는 해쉬 key 값이 생겨져 있다. 이 parent 는 맨 처음에 commit 했을 때 생겼던 파일을 가리키는 해쉬 key 값 이다.
다음 버전의 Commit 은 이전 Commit 을 가리키는 parent 해쉬 key 를 갖고 있던 것이다.
tree 는 이전과 동일하게 파일 내용정보를 담고있는 정보를 가리키는 해쉬 key 이다.
각각의 버전(Commit)은 이 tree 라는 정보 구조를 통해서 가지고 있는 것이다. 이러한 형태를 Snap shot 한다. 사진을 찍었다 라고 한다.