2016-09-29 58 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