2016-09-29 110 views
2

我有当我使用“git的子模块添加URL位置补充说:”子模块“混帐子模块初始化”git的子模块初始化绝对没有

一个奇怪的问题是克隆的资源库就好了,一切都OK。

当我把我的所有更改回父库,增加了.gitmodules文件等,并克隆了仓库后面,我尝试使用“git的子模块初始化”初始化所有子模块

并没有任何反应: (几乎一无所有,没有输出,没有多余的文件,它甚至不尝试其实做任何事情

所以我想知道,我做了什么错

.gitmodules:?

bash$ cat .gitmodules 
[submodule "projects/subprojectA"] 
    path = projects/subprojectA 
    url = ssh://[email protected]/test/projectA.git 

[submodule "projects/subprojectB"] 
    path = projects/subprojectB 
    url = ssh://[email protected]/test/projectB.git 

回答

0

克隆时使用--recursive选项。此选项初始化所有列出的子模块:

git clone --recursive 

在另一种情况下,如果要初始化刚刚克隆的混帐的子模块,你可以使用

git submodule update --init --recursive 
+0

git子模块更新--init --recursive在这里什么也不做,没有克隆,没什么,我要去尝试git clone --recursive now –

+0

git clone --recursive也不克隆子模块,我使用的是git版本2.10.0 –

+0

你确实提交了.gitmodules文件,对吧? –

5

行,我也想通了,我做了什么错误。

当我添加的git子模块,我做了git的地位和它告诉我三件事情发生了变化

当我推着我的所有资料库的修改
.gitmodules 
projects/subprojectA 
projects/subprojectB 

,我没有想提交的子模块,因为我认为它会添加我刚刚克隆的所有文件,所以我只是做了一个git添加.gitmodules并提交并推送它。

但这是错误的,你需要做一个git的承诺,并承诺它会告诉你一切,然后当你做到这一点,混帐注册这些路径,当你克隆,它会工作。

,但如果你不提交这些文件夹,它不会将它们注册,并不会克隆它们,当你复制父库。

所以这是我的错,是我误会,加入这些目录将增加所有子模块代码到父库,我试图回避这一点,它停止工作。

所以只需添加你的子模块,并提交结果,它都制定得很好:d

感谢Protectators帮助,不管!

+0

感谢我有!你救了我的命!!!对不起,但我很高兴我需要感谢你,我已经调试了好几个小时! – Zennichimaro

+0

完全同意!你不知道这是多么让我疯狂的大声笑 – SolThoth