2012-08-09 91 views
3

因此,我將一個分支「badBranch」合併到我的開發分支中,並且在合併之後發現了一些提交錯誤的提交。git:合併到我合併的

我做了還原:git revert -m 1 <commit hash of the merge>

偉大的工作。時間在繼續,編寫代碼,進一步改變了開發。

現在,有了更多的休閒活動,我想將badBranch重新合併到開發(或開發到它)以查看我是否可以修復它。

但是開發認爲badBranch在其歷史中(我認爲?),所以當我結賬badBranch併合並發展到它時,我只是得到了當前的發展狀態。

如何強制devleop和badBranch實際合併?

謝謝。

+0

爲了記錄,這就是'man git-revert'必須說的:「恢復一個合併提交聲明**你永遠不會希望**合併引入的樹更改。因此,稍後合併只會引入不是先前還原合併的祖先的提交所引入的樹更改,這可能是也可能不是你想要的「。重點是我的:) – 2012-08-09 20:54:56

回答

0

我不知道這是否會工作,但如果你有什麼checkout版badBranch和merge d的發展,然後checkout版開發和badBranch merge d?

6

這是令人驚訝的簡單 - 只是恢復該還原:

git revert <commit hash of your merge revert> 

由Marco的HOWTO鏈接還提供了一個解決方案:重訂的badBrahcn與-no-ff重建所有的提交(所有SHA ID將有所不同)並將其合併到主人。

+0

這個HOWTO可能也解釋你爲什麼這是正確的解決方案:http://schacon.github.com/git/howto/revert-a-faulty-merge.txt – 2012-08-09 21:02:14