ツリーオブジェクト(Tree Object)
「ツリーオブジェクト」は、「スナップショット」を構成する「Gitオブジェクト」の1つです。プロジェクトで使用するファイルは、サブフォルダーを作成して、用途ごとにファイルを配置するかと思います。
「ツリーオブジェクト」は、プロジェクトのフォルダーを表す「Gitオブジェクト」です。
1つの「ツリーオブジェクト」は、1つのフォルダーを表します。
サブフォルダーの参照
1つの「ツリーオブジェクト」は1つのフォルダーを表すため、自分のフォルダー内にサブフォルダーがあった場合、そのサブフォルダーを表す「ツリーオブジェクト」への参照を持ちます。サブフォルダーが複数あれば、それぞれのサブフォルダーを表す「ツリーオブジェクト」への参照を持ちます。
従ってフォルダー階層が、「ツリーオブジェクト」の階層になります。
ファイルの参照
「ツリーオブジェクト」は、フォルダー内に含まれるファイルの一覧を持っています。またそれぞれのファイルへの参照を持ちます。
このファイルへの参照は、「ブロブオブジェクト」への参照になります。
ツリーオブジェクトに含まれる情報
「ツリーオブジェクト」には、以下の情報が含まれています。- フォルダーに含まれるファイルやサブフォルダーの一覧
- ファイル名などファイルやサブフォルダーの情報
- サブフォルダーを表すツリーオブジェクトへの参照
- ファイルを表すブロブオブジェクトへの参照
「ツリーオブジェクト」に「コミットオブジェクト」への参照は含まれていません。
ブロブオブジェクト(Blob Object)
「ブロブオブジェクト」も、「スナップショット」を構成する「Gitオブジェクト」の1つです。プロジェクトのファイルを表す「Gitオブジェクト」です。
1つの「ブロブオブジェクト」は、1つのファイルを表します。
ファイルの中身から生成される
「ブロブオブジェクト」は、ファイルの中身から生成されます。従ってファイルの中身が同じなら、同じ「ブロブオブジェクト」が生成されます。
もしファイルの中身が同じなら、「ブロブオブジェクト」を共有して利用します。
ファイルの情報は含まれない
「ブロブオブジェクト」にファイルの情報は含まれません。「ブロブオブジェクト」を調べても、ファイル名は分かりません。
「ツリーオブジェクト」への参照も含まれていません。
「ブロブオブジェクト」に含まれる情報は、ファイルの中身だけです。
ファイルの情報は、「ツリーオブジェクト」に含まれています。
従ってファイルを取り出すには、「ツリーオブジェクト」と「ブロブオブジェクト」が必要になります。
スナップショットとGitオブジェクトの関係
「スナップショット」と「Gitオブジェクト」の関係をまとめます。「スナップショット」を作成すると、「コミットオブジェクト」が1つ生成されます。
同様にプロジェクトのフォルダー数だけ、「ツリーオブジェクト」が生成されます。
同様にプロジェクトのファイル数だけ、「ブロブオブジェクト」が生成されます。
それぞれの「Gitオブジェクト」は、以下の関係を持ちます。