我有以下分支:Git的合併多個分支
master
featureA
featureB
多個git倉庫。開發同時發生在所有三個分支上。我需要合併功能A到功能B並最終合併功能B到主功能。目前我做:
切換到功能B並從功能A合併。切換到主並從功能B合併。這個過程包含2個開關,因爲我需要爲大約7個存儲庫執行此操作,所以需要一些時間。
有沒有更好的方式來使用git來做到這一點?
我有以下分支:Git的合併多個分支
master
featureA
featureB
多個git倉庫。開發同時發生在所有三個分支上。我需要合併功能A到功能B並最終合併功能B到主功能。目前我做:
切換到功能B並從功能A合併。切換到主並從功能B合併。這個過程包含2個開關,因爲我需要爲大約7個存儲庫執行此操作,所以需要一些時間。
有沒有更好的方式來使用git來做到這一點?
您需要對7個存儲庫中的每個存儲庫執行兩個步驟。聽起來像是編寫shell腳本以在每個回購中爲您運行必要的git命令的好例子。只要你的回購是分開的,我認爲git本身對你來說沒有太大的幫助。你也可以考慮通過「子模塊」來連接它們(雖然我不確定它會在這裏起作用)。
這聽起來有點不正常。如果您有六到七名開發人員都在使用featureA或featureB,那麼他們應該已經彼此同步。也就是說,在發展過程中,他們彼此間或通過指定的中央存儲庫間接推/拉。這是他們在開發功能時如何一起工作的。
在這種情況下剩下的唯一的事情是:
# your 4 steps
git checkout featureB
git merge featureA
git checkout master
git merge featureB
在此之後,每個開發者拉主,他們可以刪除featureA和featureB或只是放棄他們。
發展繼續執行每一個開發人員創建新的要素分支主
的我建議合併順序如下。
//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進行搜索。
嘗試運行此命令:
您可以合併所有你一步到位的願望分支。只要創建合併鏈:
將合併分支的a,b,c,d和E在你當前分支。
如果其中一個主題導致衝突,則合併失敗。明顯。
「因爲我需要爲大約7個倉庫」 - 也許這是問題所在。爲什麼七個存儲庫?但是,你的交換機相對便宜,不是嗎? (假設你有一個乾淨的倉庫)否則git命令相對於合併你需要做的任何衝突和重新測試最終的合併代碼相對來說會相對較快。 – Rup
這七個存儲庫是否包含相同的代碼?您通常只進行一次合併,並將其推送到任何其他存儲庫。 – michas
這是一個跡象表明七個存儲庫應該是一個存儲庫。 – alternative