git commit를 할 경우 커밋에 관련된 정보가 object 파일로 저장된다. 위 사진에서 커밋 관련 정보로 커밋 메싲, 작성한 사람 이름/이메일, tree "오브젝트 링크"가 있다. (위의 커밋은 초기 버전이여서 parent가 없다)


- tree는 해당 버전에 관련된 파일 정보들을 가지는 파일이다. 옆에 "오브젝트 링크"를 누르면 위 사진과 같이 해당 버전에 f1.txt, f2.txt, f3.txt가 있는 것을 알 수 있고 각각의 파일에 대한 객체 파일 위치가 나온다.


 

위 사진은 커밋 메시지를 "2"로 해서 추가적인 커밋을 했을 경우 git 내부 정보다. 위 사진을 보면 첫 번째 사진과 달리 parent "오브젝트 링크" 정보가 잇다. 해당 오브젝트 링크는 이전 커밋 오브젝트 파일과 연결되어 있다. 사진에서 밑에 있는 parent에 대한 트리를 보면 첫번 째 사진과 같이 나오고 첫 번째 버전에서의 파일 내용을 볼 수 있다.


=> 커밋에서 tree와 parent가 있고 각각의 버전은 버전이 만들어진 시점을 스냅샷해 트리라는 정보 구조안에 저장함으로써 과거 버전의 파일을 참조할 수 있게 된다.




프로젝트 안에 d1 디렉토리를 만들고 f1.txt를 생성 후 커밋했을 경우가 위와 밑에 사진에 나와있다.

해당 커밋의 트리를 보았을 때 d1이 "blob"가 아닌 "tree"로 되어 있다. 해당 트리 옆 오브젝트 링크를 클릭하면 "blob"로 된 f1.txt가 나온다. 


=> 오브젝트 파일은 "blob"로 된 파일 내용, "tee"로 된 버전에 관련된 파일들에 대한 정보나 디렉토리, 커밋으로 구성되어 있다.


 

'Git(생활코딩)' 카테고리의 다른 글

Git 혁신(2) - branch 정보 확인  (0) 2017.06.13
Git 혁신(1) - branch  (0) 2017.06.12
Git 원리(1) - git add  (0) 2017.06.09
Git 기본(4) - 변경사항, 과거 돌아가기  (0) 2017.06.05
Git 기본(3) - add  (0) 2017.06.04

+ Recent posts