使用子模块创建一个 git 标签

Create a git tag with submodule

关于 git 子模块的小问题。

假设我有一个 projectA,它有一个子模块可能叫做 moduleA

然后我在 projectAtagA 中创建一个标签,然后我可能还会为 projectAmoduleA 做一些新的提交,然后我想去回到 tagA,使用 git checkout tagA.

问题是 projectA 返回 tagA,但 moduleA 不是。

你知道怎么做吗?

只需更新您的子模块,您返回到父仓库中的 tagA

git submodule update

Update the registered submodules, i.e. clone missing submodules and checkout the commit specified in the index of the containing repository.

像往常一样,子模块的结果 repo 将处于分离的 HEAD 模式。
注意 projectA (with a checkout of a tag) will also be in a detached HEAD mode.

标签引用了父 rpeo 内容,包括父 repo 的 gitlink ( a special entry in the index)指向子模块的特定 SHA1。