如何git标记所有子模块?

Eri*_*ric 7 git git-submodules git-tag

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

git submodule foreach git tag tagName
Run Code Online (Sandbox Code Playgroud)

......但它似乎只是没有错误地返回,没有做任何事情.

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

在此输入图像描述

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

注:这是一个非常类似的问题到这个职位,但是对于一个答案建议依靠超级项目的子模块裁判.但是,我实际上喜欢子模块的repo中的标签.

Von*_*onC 9

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

git submodule update --init --recursive
Run Code Online (Sandbox Code Playgroud)

然后,只需:

 git submodule foreach git tag -l
Run Code Online (Sandbox Code Playgroud)

你应该看到,对于每个子模块,tagName.
意味着您之前的命令确实标记了这些子模块.

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

git submodule foreach git tag -m "tagName" tagName
Run Code Online (Sandbox Code Playgroud)

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

如果你只是在父级回购级别标记,那将包括子模块gitlink,即它们的SHA1.在你的情况下,这可能已经足够了.