- https://ieee.nitk.ac.in/blog/merkle-trees-and-their-application-in-git/
- https://qiita.com/noshishi/items/60a6fe7c63097950911b
- Gitオブジェクトの種類
- Blob
- ファイルデータ
- Tree
- 1つのディレクトリ内のすべてのファイルについて,Blob ID, パス名, メタデータを記録
- 下位ディレクトリへの参照
- Commit
- 作者・コミット日・コミットメッセージなど
- コミット時点でのリポジトリの状態を指すMerkle Treeのルートハッシュ
- Tag
- Blob
- GitのすべてのファイルはBlobとして保存されている
- 同じハッシュ値を持つ(=同じデータの)Blobは存在しない(させない)
- 各コミットオブジェクトは以下のポインタを持つ
- 前のコミットを指すポインタ
- Merkle Treeのルートハッシュ
- Pull/Pushのとき,ハッシュ値を比較して違うとこだけ転送する