2017-08-25 149 views
2

我的一小組開發人員爲我們公司的幾個不同版本的核心產品創建和維護接口。我們的核心產品的不同版本大多是相似的,但是有一些差異要求我們將代碼保存在每個版本的單獨分支中。一切都在同一個存儲庫中。Git - 對多個主分支進行更改

我們最近需要切換到Git,並試圖確定當我們需要對所有分支做出相同更改時的最佳工作流程。迄今爲止,我們一直依靠Cherry Pick進行每一次提交。這很麻煩,必須有更好的方法。

下面是我們正在做的一個例子:

V1 Master: ... (A1)--(B1)--(C1)---------(M) 
           \  /
V1 Feature:     (D)----(E) 
            /
V2 Master: ... (A2)--(B2)--(C2) <--? 

之前將我們的V1功能在V1的主人,我們重訂到V1主。這很簡單,因爲V1功能是從V1 Master分支出來的。但是,現在我們需要將相同的D和E提交應用於V2 Master。這些分支足夠相似,這些提交不應引起衝突。現在我們只是Cherry挑選他們,並按順序。

我一直在尋找,我無法弄清楚最好的方法去做這件事,因爲櫻桃挑選不能是正確的方式來做到這一點。

+0

[管理多個客戶的多個git發佈分支]可能的副本(https://stackoverflow.com/questions/39035631/manage-multiple-git-release-branches-for-multiple-customers) – max630

回答

0

注意:您的架構沒有演示rebase,而是合併。

櫻桃採摘工程multiple commits in one command
這是一個很好的解決方案,提供的分支從中你是櫻桃採摘(masterV1)將永遠不會被合併到櫻桃採摘目的地分支(masterv2)

這是因爲櫻桃採摘duplicates a commit
而且您需要確保您基於之前提交(源分支)提交的櫻桃採摘提交no functional dependencies