如何git标记所有子模块?

如何git标记所有子模块?,git,git-submodules,git-tag,Git,Git Submodules,Git Tag,我想标记我的项目的所有子模块。我试着这样做: git submodule foreach git tag tagName 。。。但它似乎只是毫无差错地返回,什么也没做 编辑:以下是我尝试的结果: 有人能告诉我如何正确标记所有子模块吗 注意:这是一个与非常类似的问题,但该问题的答案建议依赖超级项目中的子模块参考。一、 但是,如果您确实希望子模块的repo中有一个标记。首先,确保您的子模块文件夹中有一个内容: git submodule update --init --recursive 然后

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

git submodule foreach git tag tagName
。。。但它似乎只是毫无差错地返回,什么也没做

编辑:以下是我尝试的结果:

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


注意:这是一个与非常类似的问题,但该问题的答案建议依赖超级项目中的子模块参考。一、 但是,如果您确实希望子模块的repo中有一个标记。

首先,确保您的子模块文件夹中有一个内容:

git submodule update --init --recursive
然后,简单地做:

 git submodule foreach git tag -l
您应该看到,对于每个子模块,
标记名

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

我建议做一个,而不是一个:

这意味着您可以从每个子模块推送该标记


如果您只是在父repo级别进行标记,那么将包括子模块gitlink,即它们的SHA1。对你来说,这就足够了。

就是这样。你希望看到什么样的回应?我编辑了原始帖子,这样你就可以看到我没有从交易中得到任何标签。但是现在,我建议你阅读下面接受的答案@VonC可以告诉我为什么我的命令不起作用。我编辑了上面的帖子以显示结果标签列表(无)。。。即使使用带注释的标记。(事实上,在我的用例中,我确实希望子模块的repo上有一个标记,而不仅仅是父模块有对标记的子模块commit的引用)@Eric你先做了一个
git子模块更新--init--recursive
吗?非常有趣!所以,不,我没有。我不认为这是必要的,因为我已经从这个repo中添加了
git子模块。我认为这足以确保子模块得到更新。但是我按照您的建议运行了更新,之后,
git子模块foreach标记…
命令运行并运行良好。
git submodule foreach git tag -m "tagName" tagName