GitはサブモジュールのコミットのSHA1をどこに保存しますか?


141

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

このsha1値が格納されている場所を見つけようとしています。

.gitmodulesそして.git/configファイルのみコミットのSHA1サブモジュールのパスを示すが、ではありません。

git -サブモジュールは、(1)参照だけのことを話すgitlinkのエントリとgitmodules(5)参照は、このどちらかについては何も言いません。


回答:


167

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

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


14
うん。今どこにあるかわかります。そして、それはのIDと一致しgit submodule statusます。ありがとう。
Abizern、2011

7
それらはマージ中にどこに保存され、サブモジュールは競合していますか?
アダムDymitruk

@AdamDymitruk、答えを見つけましたか?
kgadek

1
新しい質問を投稿してみませんか?:-)
IvanVučica15年

3
このコミットIDを変更して、作業ツリーを更新せずに別のものを指す方法はありますか?
CMCDragonkai 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.