2015-05-14 72 views
1

假設你已經有一個項目分解爲一個超級項目和一個子模塊。他們都有穩定的(主)分支和開發分支。有沒有辦法設置子模塊,以便超級項目跟蹤其開發分支的子模塊的開發分支和子模塊穩定分支的穩定分支?git submodules:跟蹤子模塊中的相應分支?

什麼我想象的是這樣的.gitmodules

[submodule "subproject"] path = subproject url = http://www.github.com/nfirvine/subproject branch = $current_branch_name

(我在Ansible project,在那裏他們stable-1.9分支跟蹤它們的子模塊的devel分支專門看這似乎像)

你可以使用git屬性來指定.gitmodules不會自動合併,但我想知道是否有比這更聰明的東西。

回答

0

超級項目中的每個提交都將與子模塊中的特定提交相關聯。子模塊不會自動更新或遵循分支:每次要同步時,都需要cd到子模塊目錄,簽出您選擇的分支,運行git pull,然後將結果提交給超級項目。您需要讓超級項目中的每個分支都指向一個提交,該提交又指向一個適當的子模塊提交; git不會爲你做到這一點。當你合併分支時,你需要手動對那部分進行分類。

這就是假設你不寫一些真棒腳本來馴服瘋狂,當然。

0

您可以讓您的主項目跟蹤子模塊的提交,但您必須提交任何更改。

例如,您有一個主項目和一個子模塊,都有一個主和開發分支。如果您在您的主項目中提交子模塊目錄,則在您或其他回購站下次運行git fetch && git submodule update時,您將擁有子模塊的最新提交。

您必須更新您的子模塊,然後提交更改,跟蹤不是自動的,因爲您可以通過更新兩個git回收站並將它們拉出來而沒有子模塊。