如何git tag所有子模块?

问题描述 投票:0回答:1

我想标记我项目的所有子模块。 我尝试这样做:

git submodule foreach git tag tagName

...但它似乎只是返回而没有错误,什么也没做。

编辑:这是我尝试的结果:

enter image description here

有人可以告诉我如何正确标记所有子模块吗?

注意:这是一个与这篇文章非常相似的问题,但该问题的答案建议依赖超级项目中的子模块引用。 然而,我实际上想要在子模块的存储库中添加一个标签。

git git-submodules git-tag
1个回答
19
投票

首先,确保您的子模块文件夹包含以下内容:

git submodule update --init --recursive

然后,只需执行:

 git submodule foreach git tag -l

您应该看到,对于每个子模块,

tagName

这意味着您之前的命令确实标记了这些子模块。

我建议制作一个带注释的标签,而不是轻量级

git submodule foreach git tag -m "tagName" tagName

这意味着您可以从每个子模块推送该标签,最好使用

--follow-tags
中的 git push
 选项

git submodule foreach git push origin --follow-tags
如果您只是在父存储库级别进行标记,则会包含子模块 gitlink,即它们的 SHA1。对于你的情况来说这可能就足够了。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.