我有一个项目,其中指定了子模块。在开发机上一切正常。我已经提交了.gitmodules
文件并在生产环境中进行了拉取。但是它没有拉取子模块。
如果我进入子模块目录并调用git pull
,什么也不会发生。
在新项目中拉取这些子模块的正确方法是什么?
我有一个项目,其中指定了子模块。在开发机上一切正常。我已经提交了.gitmodules
文件并在生产环境中进行了拉取。但是它没有拉取子模块。
如果我进入子模块目录并调用git pull
,什么也不会发生。
在新项目中拉取这些子模块的正确方法是什么?
从repo的根目录运行:
git submodule update --init
如果存在嵌套的子模块,则需要使用:
git submodule update --init --recursive
如果您需要将子模块中的内容拉取到子模块仓库中,请使用以下命令:
git pull --recurse-submodules
但这不会检出子模块中正确的提交(即您的主存储库所指向的提交)
要在子模块中检出正确的提交,您应该在拉取后更新它们,使用以下命令:
git submodule update --recursive
git clone
时忘记使用 --recursive
,所以我需要运行 git submodule update --recursive
。谢谢! - mbbgit submodule update --init --recursive
解决了我的问题。 - Igleskgit submodule update --init
命令即可,不需要加上 --recursive
参数。 - drkvogel我只想分享这些内容。
第一种方法,
git submodule init && git submodule update
git submodule update --init
git pull --recurse-submodules
- Spencergit submodule update --init
在 git 版本 2.31.1 中运行良好,它克隆了所有子模块。 - DrGogit submodule update --init
有效,而git pull --recurse-submodules
则无效。 - Someone