1

“超级”-repo 在哪里跟踪每个子模块的提交?

我在 .gitmodules 中没有看到任何这些信息

我想要实现的是,如果我用 say 标记“超级”-repo,1.0-alpha那么它会记住当时所有子模块的提交时间,所以当我稍后签出该标签时,我会在他们的正确的提交位置也是如此。

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

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

git ls-tree <tag>

但是随后我将不得不进入每个子模块并在提交时手动签出该特定子模块abc1234..

/大卫

4

1 回答 1

2

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

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

此行指示应签出以匹配主存储库中的提交的子模块中的提交。

于 2013-11-04T15:42:06.657 回答