1. ホーム
  2. git

[解決済み] Git はサブモジュールのコミットの SHA1 をどこに保存するのですか?

2022-04-22 13:26:26

質問

git リポジトリにサブモジュールを追加すると、そのサブモジュールの sha1 で参照される特定のコミットを追跡することができますね。

このsha1値がどこに保存されているか調べています。

.gitmodules.git/config ファイルにはサブモジュールのパスが表示されるだけで、コミットの sha1 が表示されるわけではありません。

git-submodule(1) リファレンスでは gitlink のエントリと gitmodules(5) を参照しても、これについては何も書かれていません。

解決方法は?

Gitのオブジェクト・データベースに直接格納されます。 サブモジュールが存在するディレクトリのツリーオブジェクトには、サブモジュールのコミットのためのエントリーがあります(これはいわゆる "gitlink"です)。

を実行してみてください。 git ls-tree master <path-to-directory-containing-submodule> (または単に git ls-tree master は、サブモジュールがトップレベルのディレクトリにある場合)。