Threre是多個資源,它會告訴你如何在git中恢復分支合併,以防在分支中發現錯誤。如果分支沒有被推向上游,或者恢復/更正分支中的錯誤/恢復恢復/合併,則在這種合併之後的步驟將被重置/更正爲分支/合併中的錯誤。但是,這隻涉及在分支代碼中出現錯誤的情況。今天,我試圖恢復由於衝突在合併提交中被解決的方式而無效的合併。恢復無效的git合併
前的情況:
master o -- 1 -- C
\ /
branch a -- b
是合併分支成遇到的提交有關某人的實現代碼主開發商在其他承諾他解決衝突,並承諾他們,從而創建一個合併提交「C」。問題在於他在做這件事時引入了一個錯誤。我想做的事,然後是恢復這一合併,並重新合併正確的,創造的東西,看起來像這樣:
master o -- 1 -- C -- ~C -- C1
\ / /
branch a -- b ----------
其中「〜C」是還原後的「C」和「C1」正確的合併。不幸的是,它看起來像我不能這樣做。
當然重置爲1並將「分支」重新合併爲「主」作品,但這些更改已經在上游,我不想做任何骯髒的竅門。
解決方案我發現在線程Undo a Git merge that hasn't been pushed yet沒有帶我到任何地方。
我得到的最清潔的想法是修正「C」中的代碼並將它們提交給「master」,但在這種情況下,您從git獲得任何幫助,例如衝突文件列表或突出顯示的衝突行,在這種情況下,這非常有幫助。
任何想法?
爲什麼沒有〜C - > C1工作?有沒有說因爲b已經合併到C了,所以什麼都沒有改變?您在嘗試〜C後是否嘗試從分支變成主人? –
正如你猜測的 - 〜C - > C1沒有工作,因爲合併已經完成。正如我在鏈接到的問題(和鏈接那裏的文章)中所說的那樣 - 恢復不會恢復歷史記錄,只會發生變化,所以並不奇怪。我沒有嘗試挑選承諾,那對我有什麼幫助? – mikosz