【发布时间】:2022-04-29 17:50:49
【问题描述】:
我有一个项目,其中指定了子模块。一切都在开发机器上运行良好。我已提交.gitmodules 文件并开始制作。但是它不会拉取子模块。
如果我进入子模块目录并调用git pull,什么都不会发生。
在新项目中拉取这些子模块的正确方法是什么?
【问题讨论】:
标签: git git-submodules
我有一个项目,其中指定了子模块。一切都在开发机器上运行良好。我已提交.gitmodules 文件并开始制作。但是它不会拉取子模块。
如果我进入子模块目录并调用git pull,什么都不会发生。
在新项目中拉取这些子模块的正确方法是什么?
【问题讨论】:
标签: git git-submodules
从 repo 的根目录运行:
git submodule update --init
【讨论】:
git pull --recurse-submodules
git submodule update --init 在 git 版本 2.31.1 中工作正常;它克隆了所有子模块。
如果您需要将子模块的内容提取到您的子模块存储库中,请使用
git pull --recurse-submodules
但这不会检查子模块中的正确提交(您的主存储库指向的提交)
要检查子模块中的正确提交,您应该在使用后更新它们
git submodule update --recursive
【讨论】:
git submodule update --recursive 是我在第一次git cloneing 之后需要的,但第一次忘记--recursive。谢谢!
git submodule update --init --recursive 解决我的问题
git submodule update --init 为我做的 - 不需要 --recursive。
如果有嵌套的子模块,则需要使用:
git submodule update --init --recursive
【讨论】:
我只想分享这些。
第一种方式,
git submodule init && git submodule update
下面只是基本结合了第一种方式,
git submodule update --init
如果有任何嵌套的子模块,Iglesk's answer 是要走的路。
【讨论】: