2014-10-16 83 views
0

在我們過去的生活中,我們有一個分支系統,它是......不正確的。 我們不得不恢復合併,因爲我們決定不發佈該功能。你如何重新合併還原的合併

現在我們準備發佈該功能,並且我很難弄清楚如何讓它們重新融合。

爲了跟蹤目的,我從前一個分支中創建了一個新分支,並從我們的主線中最新合併。但我一直無法弄清楚如何將它合併回主線。

+0

這是在過去幾天其他幾個問題的複製 – 2014-10-16 15:16:56

+1

可能重複[在Git中重新執行還原的合併](http://stackoverflow.com/questions/1078146/re-doing-a-reverted -merge-in-git) – 2014-10-16 15:34:34

回答

1

如果在該分支上有乾淨的工作樹,請切換回主線(主?)和git merge <branchname>,或者您可以使用rebase將其他分支的所有更改應用到當前「主線」(主線?)

1

有幾種方法可以做到這一點。

  1. 您可以使用git revert上的合併的恢復提交。確保以後的更改不會被覆蓋。
  2. 根據功能中更改了哪些文件,您可以使用git checkout從原件中檢出文件。然後,您可以執行一次介紹該功能的提交。如果以後的更改將被過去的文件覆蓋,這可能會非常棘手。
  3. git cherry-pick提交對功能進行更改的提交。如果只有幾個提交,您可以輕鬆識別該功能,這可以工作。它將創建新的提交,重新引入更改。只要確保您按照正確的順序應用提交。

無論如何,您需要有一個或多個新的提交以重新引入更改。這不會是重新分支分支的問題。

IMO,最簡單的選擇可能是第一個。只要確保在推送之前驗證本地回購庫中的所有內容。這樣你可以修改提交而不會造成任何麻煩。

+0

嘿@Schleis我試着#1散列是我的回覆,但它給我一個主線是特定的,但提交不是合併? – user3779502 2014-10-16 19:13:45

+0

查看此答案:http://stackoverflow.com/a/10331106/498699 – Schleis 2014-10-16 19:22:05