“super”-repo在哪里跟踪每个子模块的提交情况?
我在.gitmodules
中没有看到任何相关信息我想要实现的是,如果我用“1.0-alpha
标记”超级“-repo,那么它将记住当时所有子模块的提交,所以当我稍后检出该标记时,我将使子模块处于正确的提交位置。
如果不手动记下每个子模块的提交位置,这是否可行?
我现在意识到我可以通过使用以下方式获取该信息:
git ls-tree <tag>
但是我必须进入每个子模块并在提交abc1234
处手动检查该特定子模块。
/大卫
答案 0 :(得分:1)
子模块的当前提交哈希存储在与主项目中的提交关联的树对象中。如果在主项目中执行git ls-tree -r HEAD
,则每个子模块由表格的一行表示:
160000 commit <hash> <path/to/submodule>
此行表示子模块中的提交,应该检出该提交以匹配主存储库中的提交。