从GitHub克隆项目后提取git子模块


90

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

如果我进入子模块目录并调用git pull,则什么也不会发生。

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

Answers:


140

从仓库的根开始运行:

git submodule update --init

8
我相信这实际上会更新您的依赖关系。我认为S. Russel在下面的评论中有正确的命令:git pull --recurse-submodules
Spencer

37

如果您需要将子模块的内容拉入子模块存储库,请使用

git pull --recurse-submodules

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

要在子模块中检出正确的提交,应在拉动使用后更新它们

git submodule update --recursive

1
git submodule update --recursive是我刚git clone开始后需要的东西,但是第一次忘记了--recursive。谢谢!
mbb

8
这似乎对我不起作用。子模块保持为空。
CodeMonkey

@CodeMonkey对我一样。
linkerx

6
可能对派对来说太迟了,但对于任何人到这里结束: git submodule update --init --recursive解决我的问题
Iglesk

21

如果存在嵌套的子模块,则需要使用:

git submodule update --init --recursive
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.