Git在哪里存储子模块的提交的SHA1?


141

我知道,当您将子模块添加到git存储库时,它会跟踪其sha1引用的该子模块的特定提交。

我试图找到此sha1值存储在哪里。

.gitmodules.git/config文件只显示了子模块的路径,但不是的提交SHA1。

混帐子模块(1)参考只讲一个的gitlink条目和gitmodules(5)参考不说这事,无论是。


Answers:


167

它直接存储在Git的对象数据库中。子模块所在目录的树对象将具有一个子模块提交的条目(这就是所谓的“ gitlink”)。

尝试这样做git ls-tree master <path-to-directory-containing-submodule>(或者只是git ls-tree master在子模块位于顶层目录中)。


14
是的 我知道现在在哪里。并且它匹配来自的ID git submodule status。谢谢。
阿比森2011年

7
它们在合并期间存储在哪里,并且子模块有冲突?
亚当·迪米特鲁克

@AdamDymitruk,找到答案了吗?
kgadek

1
伙计们,为什么不发布一个新问题?:-)
IvanVučica2015年

3
有没有一种方法可以更改此提交ID以指向其他对象,而无需更新工作树?
CMCDragonkai '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.