在我們過去的生活中,我們有一個分支系統,它是......不正確的。 我們不得不恢復合併,因爲我們決定不發佈該功能。你如何重新合併還原的合併
現在我們準備發佈該功能,並且我很難弄清楚如何讓它們重新融合。
爲了跟蹤目的,我從前一個分支中創建了一個新分支,並從我們的主線中最新合併。但我一直無法弄清楚如何將它合併回主線。
在我們過去的生活中,我們有一個分支系統,它是......不正確的。 我們不得不恢復合併,因爲我們決定不發佈該功能。你如何重新合併還原的合併
現在我們準備發佈該功能,並且我很難弄清楚如何讓它們重新融合。
爲了跟蹤目的,我從前一個分支中創建了一個新分支,並從我們的主線中最新合併。但我一直無法弄清楚如何將它合併回主線。
如果在該分支上有乾淨的工作樹,請切換回主線(主?)和git merge <branchname>
,或者您可以使用rebase將其他分支的所有更改應用到當前「主線」(主線?)
有幾種方法可以做到這一點。
git revert
上的合併的恢復提交。確保以後的更改不會被覆蓋。git checkout
從原件中檢出文件。然後,您可以執行一次介紹該功能的提交。如果以後的更改將被過去的文件覆蓋,這可能會非常棘手。git cherry-pick
提交對功能進行更改的提交。如果只有幾個提交,您可以輕鬆識別該功能,這可以工作。它將創建新的提交,重新引入更改。只要確保您按照正確的順序應用提交。無論如何,您需要有一個或多個新的提交以重新引入更改。這不會是重新分支分支的問題。
IMO,最簡單的選擇可能是第一個。只要確保在推送之前驗證本地回購庫中的所有內容。這樣你可以修改提交而不會造成任何麻煩。
嘿@Schleis我試着#1散列是我的回覆,但它給我一個主線是特定的,但提交不是合併? – user3779502 2014-10-16 19:13:45
查看此答案:http://stackoverflow.com/a/10331106/498699 – Schleis 2014-10-16 19:22:05
這是在過去幾天其他幾個問題的複製 – 2014-10-16 15:16:56
可能重複[在Git中重新執行還原的合併](http://stackoverflow.com/questions/1078146/re-doing-a-reverted -merge-in-git) – 2014-10-16 15:34:34