我在裸回購中面臨子模塊的奇怪問題。我說明我做了什麼。子模塊裸回購問題
我有一個包含4個模塊的回購。它看起來像這樣 - * Superepo(頂級回購) - 我向此回購添加了以下子模塊:: mod_1,mod_2,mod_3和mod_4(內部子模塊)。 之後,我從這個Superepo創建了一個裸回購,並將其命名爲superepo.git
現在我使用此裸回購來分享不同的物流。
我將裸露回購以及所有子模塊一起克隆到名爲〜/ clone的目錄中。 (git clone --recursive〜/ Superepo.git clone)。 我修改了其中一個克隆子模塊(mod_1和mod_2)中的內容。我對這些子模塊進行了這些更改。我也承諾對superepo「克隆」進行更改。 (〜/克隆)
然後我通過使用「git push〜/ superepo」通過了更改到裸superepo。
現在有人試圖克隆裸回購。但是,他得到的錯誤如下 - >
致命:引用不是樹xyz(xyz = sh1的mod_1提交) 無法在子模塊路徑mod_1中籤出xyz。
我有點笨,我可以做錯了。我是否對裸回購或超模塊做錯了?
我不明白你的觀點。建議我做錯的步驟:Step_1:我在我的克隆中進行了更改。 (〜/克隆/ mod_1和〜/克隆)。步驟2:然後我將更改推送到此更新克隆的裸回購。第3步:然後有人克隆這個更新的裸回購。所以,根據我的理解,這個新的克隆應該體現在這個新的克隆中。或者可能是我在這裏錯過了一些關於git的非常imp的概念。 – 2012-03-20 21:42:43
你需要兩個推動步驟:'(cd mod_1; git push ...)'和(回到子模塊的超級回購)'git push ...'。這樣,新的提交和樹在遠程的mod_1中,以便從遠程獲取的人可以看到它們。推回超級回購並不會更新遠程的mod_1,只會更新遠程的超級回購。 – torek 2012-03-20 22:02:23
@ agent.smith - 您致力於子模塊並執行其他步驟並推送主要的回購。您還應該推入子模塊回購庫,因爲外部子模塊回購庫是在克隆時看到的。 – manojlds 2012-03-20 22:05:59