如何更新一个 Git 子模块?

16
我有几个子模块,只想更新其中一个。
我认为这个命令会更新 .gitmodules 中的所有子模块。
git submodule update --init --recursive --remote

我只想更新其中的一个模块。


你想将子模块更新到最新的提交吗?请参见此处:https://dev59.com/RW025IYBdhLWcg3wvIko - Tim Biegeleisen
1个回答

25
git submodule update 命令 接受一个路径作为参数。请使用需要更新的子模块的路径,因为该路径已记录在您的 .gitmodules 文件中。
git submodule update --init --remote a/submodule/path

请确保:

如果要手动更新,您还可以进入子模块文件夹,并自己执行 git checkout aBranch/git pull 命令。然后返回父存储库,为该子模块添加和提交新的 gitlink SHA1。


错误:路径规范'a/submodule/path'与git已知的任何文件不匹配。这个答案缺少一个重要细节:这个命令必须在.gitmodules所在的目录中运行,而不是子模块本身所在的目录中运行。 - MSalters
@MSalters 感谢您的反馈,说得好。我已经相应地编辑了答案。 - VonC

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