2013-04-14 125 views
0

我有以下分支:Git的合併多個分支

master 
featureA 
featureB 

多個git倉庫。開發同時發生在所有三個分支上。我需要合併功能A功能B並最終合併功能B主功能。目前我做:

切換到功能B並從功能A合併。切換到並從功能B合併。這個過程包含2個開關,因爲我需要爲大約7個存儲庫執行此操作,所以需要一些時間。

有沒有更好的方式來使用git來做到這一點?

+0

「因爲我需要爲大約7個倉庫」 - 也許這是問題所在。爲什麼七個存儲庫?但是,你的交換機相對便宜,不是嗎? (假設你有一個乾淨的倉庫)否則git命令相對於合併你需要做的任何衝突和重新測試最終的合併代碼相對來說會相對較快。 – Rup

+0

這七個存儲庫是否包含相同的代碼?您通常只進行一次合併,並將其推送到任何其他存儲庫。 – michas

+0

這是一個跡象表明七個存儲庫應該是一個存儲庫。 – alternative

回答

1

您需要對7個存儲庫中的每個存儲庫執行兩個步驟。聽起來像是編寫shell腳本以在每個回購中爲您運行必要的git命令的好例子。只要你的回購是分開的,我認爲git本身對你來說沒有太大的幫助。你也可以考慮通過「子模塊」來連接它們(雖然我不確定它會在這裏起作用)。

1

這聽起來有點不正常。如果您有六到七名開發人員都在使用featureA或featureB,那麼他們應該已經彼此同步。也就是說,在發展過程中,他們彼此間或通過指定的中央存儲庫間接推/拉。這是他們在開發功能時如何一起工作的。

在這種情況下剩下的唯一的事情是:

# your 4 steps 
git checkout featureB 
git merge featureA 
git checkout master 
git merge featureB 

在此之後,每個開發者拉主,他們可以刪除featureA和featureB或只是放棄他們。

發展繼續執行每一個開發人員創建新的要素分支主

0

我建議合併順序如下。

//merge master to featureA 
git checkout master 
git merge featureA 

//merge featureA to master 
git checkout featureA 
git merge master 

//merge master to featureB 
git checkout master 
git merge featureB 

//merge featureB to master 
git checkout featureB 
git checkout master 

通過這種方式,featureA和featureB兩個修改都安全地合併爲主。此外,即使事先有任何主修改,也不會發生合併遺漏。

但是,訂單很複雜。這就是爲什麼如果手動有可能使操作出錯。 似乎有自動化訂單的工具,請使用Google進行搜索。

0

嘗試運行此命令:

  • git的結帳主
  • 混帳合併featureA featureB

您可以合併所有你一步到位的願望分支。只要創建合併鏈:

  • 混帳合併A B C dé

將合併分支的a,b,c,d和E在你當前分支。

如果其中一個主題導致衝突,則合併失敗。明顯。