この図から、コミットは他のツリーとブロブへのポインターであるルート ツリーへのポインターです。しかし、インデックスの適切なビューとは何ですか?
質問:
フォルダー構造を持つ同様のツリー風ですか、それともブロブのフラット ビューですか?
インデックスがツリーっぽい場合、コミットとインデックスの間に大きな違いはありますか?
インデックスは完全なスナップショットと差分のどちらに似ていますか?
この質問と同じ答え:C#を使用したGitインデックスファイルのデコード
Gitインデックスファイル形式については、次の場所で説明しています: http://git.kernel.org/?p=git /git.git;a=blob;f=Documentation/technical/index-format.txt;hb=HEAD
概念的には、インデックスはツリーです。で行われたすべての変更を反映した HEAD の状態を格納しgit add
ます。コミットが行われると、インデックスは単にコミット内のツリーになります。インデックスが実際にどのように実装されているかを尋ねているのでしょうか? 確かに木だと思いますが、定かではありません。
インデックスは、ステージング ファイルのコレクションです。または、追加されたすべてのファイルとも言えます。キャッシュは、私にとって理解しやすい古いインデックスの名前です。
コミット後、インデックスは現在のブランチの先頭である HEAD になります。
インデックス内の 1 つのファイルを破棄する場合は、 を使用
$git reset HEAD <filename>
してそれを行うことができます。