Git - 子模块,跟踪子模块提交使用的内容

时间:2013-11-04 14:33:06

标签: git git-submodules

“super”-repo在哪里跟踪每个子模块的提交情况?

我在.gitmodules

中没有看到任何相关信息

我想要实现的是,如果我用“1.0-alpha标记”超级“-repo,那么它将记住当时所有子模块的提交,所以当我稍后检出该标记时,我将使子模块处于正确的提交位置。

如果不手动记下每个子模块的提交位置,这是否可行?

我现在意识到我可以通过使用以下方式获取该信息:

git ls-tree <tag>

但是我必须进入每个子模块并在提交abc1234处手动检查该特定子模块。

/大卫

1 个答案:

答案 0 :(得分:1)

子模块的当前提交哈希存储在与主项目中的提交关联的树对象中。如果在主项目中执行git ls-tree -r HEAD,则每个子模块由表格的一行表示:

160000 commit <hash> <path/to/submodule>

此行表示子模块中的提交,应该检出该提交以匹配主存储库中的提交。