Git 내부 구조에 대해서 알아보자 - Objects 에 이어서 이번에는 Tree와 Blob에 대해서 살펴보겠습니다.
ProGit 10장에 Git 내부 구조에 대해서 설명을 보고 간단한 실습을 통해서 Git의 내부구조에 대해서 알아보겠습니다.
Git은 Tree 개체에 파일을 여러 개를 한번에 저장 할 수 있습니다. 모든 Tree와 Blob 개체로 저장을 합니다.
Tree
Git 트리 개체는 Git 리포지토리의 파일 간에 계층 구조를 만듭니다. Git 트리 개체를 사용하여 디렉터리와 디렉터리에 포함된 파일 간의 관계를 만들 수 있습니다. 해당 엔드포인트를 사용하면 GitHub에서 Git 데이터베이스에 트리 개체를 읽고 쓸 수 있습니다.
-- GitHub Docs 중 Git 트리 본문 중 --
Blob
Git BLOB(Binary Large Object)은 각 파일의 콘텐츠를 리포지토리에 저장하는 데 사용되는 개체 형식입니다. 파일의 SHA-1 해시는 계산되어 BLOB 개체에 저장됩니다. 엔드포인트를 사용하면 GitHub에서 Git 데이터베이스에 BLOB 개체를 읽고 쓸 수 있습니다.
-- GitHub Docs 중 Git Blob 본문 중 --
Tree와 Blob 내부구조를 실습을 통해서 알아보겠습니다.
최신 커밋의 SHA-1 HEAD
값을 가져오겠습니다.
git rev-parse HEAD // SHA-1 HEAD 값 확인
65210ae87b3a824b11e64b7263d5de0ce546c0cf
트리 개체의 내용 나열 git ls-tree
를 통해서 HEAD 커밋의 트리 개체의 내용을 나열합니다.
git ls-tree 65210ae87b3a824b11e64b7263d5de0ce546c0cf //해시 값