Git子模块指定版本

4

我有一个Git子模块。

我有一个.gitmodules文件。

[submodule "templates-ui/src/main/webapp/js/app/ui"]
    path = templates-ui/src/main/webapp/js/app/ui
    url = git@github.com:xxx/ui-core.git

我执行了initupdate命令。

但是如何指定子模块的版本?例如,我可能有ui-core的版本为2.3.22.3.3


子模块就是另一个仓库中的一个仓库。请问您如何根据版本为任何普通的 Git 仓库命名? - Tim Biegeleisen
对于每个版本,都有特定的提交,例如“增加构建版本”,其中修改了一个文件...但这实际上就是问题所在...嗯嗯。我只能指向一个特定的提交。 - lapots
你可以使用版本文件,但实际上你可以查看父仓库的历史记录,以查看子模块所拥有的各个版本。 - Tim Biegeleisen
1个回答

8

Git将子模块作为普通对象跟踪。 这意味着,一旦添加了子模块,子模块的确切状态(例如修订版本)也存储在父模块中。

因此,请执行以下操作:

cd submodule
git checkout v2.3.2
cd -
git commit . -m "use submodule v2.3.2"

作为Git处理子模块的副作用,你不能拥有一个“活”子模块¹(永远跟踪主分支的HEAD)- 子模块实际上总是处于“分离”的状态。
¹好吧,你可以;没有人会阻止你通过手动在子模块内pull来跟踪master/HEAD; 但是父级模块始终将引用特定的提交。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接