2013-06-03 77 views
5

我搜索了很多,但無法找到一個自信的解決方案(原諒我,因爲我是新來的混帳,也許我沒有得到一些好的詞)。所以我會在這裏說出我的確切問題:Git合併沒有刪除其他分支拉動變化

  1. 我有一個軟件(比如分支主),其中我剛剛發佈了5.0版,然後我創建了一個新的分支(比如5B)來解決所有問題進來的分支。

  2. 所有新功能都被添加到主分支。

  3. 現在我必須爲某人提供一個具有新功能的版本,但我也想要所有的錯誤修正。

  4. 我的邏輯說我可以從5b中取出所有變化,將它與main合併並進行構建。

唯一的問題是,我想保持這個分支5B,因爲它是如此,其他補丁可以被添加到它。雖然主要來自5b的所有變化應該是可用的。

請讓我知道如何做到這一點。具有一點細節的步驟明智的答案將非常有幫助。

感謝,

回答

8

你有一個分支 - 主要

您有bug修復的一個分支 - 5B

以合併您的bug修復更改主

現在,

拉來自主分支的最新更改:

git checkout main 
git pull origin main 

合併更改在主枝5B分支(5B分支是最新的,與主分支):

git checkout 5b 
git pull origin 5b 
git merge main 
git push origin 5b 

合併您5B分支的更改回主:

git checkout main 
git merge 5b 
git push origin main 

這並不會刪除你5B(bug_fixes)分行或主分行。您可以繼續將您的錯誤修復分支更改合併爲這種方式。

+0

這是否會將我的更改添加到5b分支?我不想在5b中引入此功能,因爲這用於向客戶發送新的錯誤修復版本。此功能僅適用於我只想添加此功能的特定版本。 –

+0

我不清楚。 '我的改變'在這裏意味着什麼?你的意思是'你在5b分支的本地變化也被添加到主分支'? –

+1

@VivekVDwivedi編號將5b合併到main中只改變main,而不是5b。就此而言,合併是不對稱的。在你的例子中,5b通常位於main的後面,並且只要你在5b中進行了修改,就可以將它們合併到main中。 –