166

我有一个项目,其中指定了子模块。一切都在开发机器上运行良好。我已.gitmodules提交文件并开始生产。但是它不会拉取子模块。

如果我进入子模块目录并调用git pull,则没有任何反应。

在新项目中提取这些子模块的正确方法是什么?

4

4 回答 4

252

从 repo 的根目录运行:

git submodule update --init
于 2013-05-27T12:59:25.317 回答
57

如果您需要将子模块的内容提取到子模块存储库中,请使用

git pull --recurse-submodules

但这不会检查子模块中的正确提交(您的主存储库指向的提交)

要检查子模块中的正确提交,您应该在使用后更新它们

git submodule update --recursive
于 2013-05-27T12:59:20.560 回答
50

如果有嵌套的子模块,您将需要使用:

git submodule update --init --recursive
于 2019-09-13T09:16:09.007 回答
2

我只是想分享这些。

第一种方式,
git submodule init && git submodule update

下面只是基本上结合了第一种方式,
git submodule update --init

如果有任何嵌套的子模块,Iglesk 的答案就是要走的路。

于 2021-08-23T13:39:39.753 回答