【図解】Gitのインデックスの説明まとめ

git コマンド

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

Gitのインデックスの概要

Gitには「インデックス」という保存領域が存在します。
「ステージング」とも言います。

インデックスには、コミット(git commit)する前のファイルのリストと、そのファイルそのものが保存されています。

Gitのインデックスの保存場所

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

Gitのインデックスが更新されるタイミング

インデックスは、git addgit 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のインデックスに関する説明は以上です。

コメント/ピンバック

タイトルとURLをコピーしました