Gitのインデックスに関する説明をまとめます。
Gitのインデックスの概要

Gitには「インデックス」という保存領域が存在します。
「ステージング」とも言います。
インデックスには、コミット(git commit)する前のファイルのリストと、そのファイルそのものが保存されています。
Gitのインデックスの保存場所

インデックスのリストは.git/index
にバイナリファイルとして保存されています。
インデックスに登録されているファイルの内容は.git/objects/
以下にバイナリファイルとして保存されています。
Gitのインデックスが更新されるタイミング

インデックスは、git add
やgit rm
した時に更新されます。
この時インデックスに登録されたファイルが、コミットした時にリポジトリの変更として記録される事になります。
また、git reset
によりインデックスの状態を巻き戻す事もできます。
Gitのインデックスを実際に見る方法
git ls-files --stage
コマンドでインデックスのリストを見る事ができます。
以下のようなイメージです。
> git ls-files --stage
100644 6537ca4677ee97ddcb112f22d086b92721fd578c 0 .editorconfig
100644 a09f5cb4d4481a7e0ccc6ee43d2b85a1ba59881f 0 .env.example
100644 967315dd3d16d50942fa7abd383dfb95ec685491 0 .gitattributes
100644 8c33aa2e441e78a90defb74b9678d8a15e3b8b61 0 .gitignore
…
インデックスに登録されているファイルの内容はgit cat-file
で見る事ができます。
試しに上記の一覧で出てきた.gitignore
の中身を見てみます。
> git cat-file -p 8c33aa2e441e78a90defb74b9678d8a15e3b8b61
/node_modules
/public/storage
/storage/*.key
/vendor
.env
git cat-file -p
にインデックスのリストで確認したオブジェクトのハッシュ値を指定すると、ファイルの中身が見れます。
Gitのインデックスに関する説明は以上です。
コメント/ピンバック