2011-02-17 48 views
68

我知道,當你將一個子模塊添加到git倉庫時,它會跟蹤其sha1所引用的子模塊的特定提交。Git在哪裏存儲子模塊提交的SHA1?

我試圖找到這個sha1值存儲在哪裏。

.gitmodules.git/config文件只顯示子模塊的路徑,但不顯示提交的sha1。

git-submodule(1)參考只講一個gitlink條目和gitmodules(5)參考不說這事,無論是。

+2

請參閱http://stackoverflow.com/questions/3983829/how-can-i-get-a-git-submodules-associated-commit-id-from-a-past-commit-in-the-pa – 2011-02-17 20:07:28

回答

85

它直接存儲在Git的對象數據庫中。子模塊所在目錄的樹對象將具有子模塊提交的條目(這就是所謂的「gitlink」)。

嘗試做git ls-tree master <path-to-directory-containing-submodule>(或者如果子模塊位於頂層目錄中,則只是git ls-tree master)。

+6

是的。我看到現在在哪裏。它匹配`git submodule status`的id。謝謝。 – Abizern 2011-02-17 20:21:21