使用 Git 拉取代码,包括子模块。

48

在我的一个iOS项目中,我添加了一个子模块。假设我的朋友想要拉取包括这个子模块在内的代码,他应该如何做?每当我尝试从GitHub下载zip文件时,它并不会连同子模块一起拉取。

2个回答

91

这是有意而为之的。将子模块作为第二步获取。

git clone git://url...
cd repo
git submodule update --init

然后,在 git pull 后面添加另一个步骤。

git pull ...
git submodule update --recursive
当然,这仅在第一次正确设置子模块时才有效...

4
非常有用的回答:我经常忘记在git clone命令中加上--recursive选项。 - Victor Sergienko
14
对我来说,git submodule update --recursive 毫无作用。 - IgorGanapolsky
3
晚了回复,但您需要执行 git submodule update --recursive --init 命令。init选项可下载子模块本身。 - ENBYSS

65

您可以使用--recursive选项进行克隆,以便自动初始化和更新子模块(以及这些子模块包含的任何子模块等)。

git clone --recursive <URL-OF-REPOSITORY>

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