方法 git store メモ:
- Git は、単一の名前空間のコミットごとに 1 つのメモのみを保存します。複数の名前空間を持つことができます。デフォルトの名前空間は commit です。
- .git/refs/notes/
MainHash_2
には、ツリー オブジェクトである 1 つのハッシュ (たとえば ) が含まれています。メモを作成するたびに、ハッシュが変更されます。 - このツリー オブジェクトには、さらに 2 つのハッシュが含まれています。別のツリー構造 (ノート ツリー構造、たとえば
NOTES_2
) と親ツリー オブジェクト (このノートを作成する前の .git/refs/notes/ にあるもの、たとえばMainHash_1
) - メモ ツリー構造には、メモごとに 1 つのエントリが含まれます。各エントリには 2 つのハッシュがあります。1 つは内容を記録するためのもので、もう 1 つは指定されたコミットのためのものです。
3番目のポイントで述べたように、なぜ親が保存されるのですか? この親 (そのタイプはポイント 2 で述べたものと同じ) には、メモごとに 1 つのエントリを含む別のツリーも含まれます。
現在、3 つのメモがあるとします。には、メモごとに 3 つのエントリを含むMainHash_2
へのハッシュが含まれています。へのハッシュが含まれており、2 つのエントリが含まれています (現在作成されているものを除く残りのすべてのメモ用)。これらの 2 つのエントリを 2 回保存するのはなぜですか??NOTES_2
MainHash_1
NOTES_1