回购克隆后,空的Git子模块文件夹


130

我在https://github.com/aikiframework/json上托管了一个仓库。在本地副本上,我使用以下命令添加了一个子模块

git submodule add git@github.com:jcubic/json-rpc.git json-rpc

然后,我进行了提交和推送,更改出现在GitHub上(我可以单击它)。但是当我克隆仓库时

git clone https://github.com/aikiframework/json.git

子模块文件夹json-rpc为空。

我在这里想念什么?我忘了什么吗?为什么该文件夹为空?

Answers:


200

确定,我找到了,需要添加 --recursive克隆仓库时。

因此,克隆命令最终显示为:

git clone https://github.com/aikiframework/json.git --recursive

229
是的 git submodule update --init如果已经克隆但忘记了,您也可以在事实之后获取子模块--recursive
2012年

4
只是面临一个问题,develop分支上有一个子模块,而master分支上还没有。当您使用--recursive克隆git repo时,它将不会在master分支上找到子模块,而您必须使用Ambers注释“ git submodule update --init”来获取它,以获取子模块。
d4Rk 2013年

11
如果你使用git submodule update --init,你将不得不去各回购和做git checkout master,否则你会得到错误You are not currently on a branch.git pull,当你尝试将其更新到新版本。
Noitidart

@Noitidart有没有办法做到这一点?(已经克隆了项目之后)
borgr

1
@Noitidart感谢您的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.