回滚Git合并

develop branch
--> dashboard (working branch)

我使用git merge --no-ff develop来将任何上游更改合并到仪表板

git log:

commit 88113a64a21bf8a51409ee2a1321442fd08db705
Merge: 981bc20 888a557
Author: XXXX <>
Date:   Mon Jul 30 08:16:46 2012 -0500

    Merge branch 'develop' into dashboard

commit 888a5572428a372f15a52106b8d74ff910493f01
Author: root <root@magneto.giveforward.com>
Date:   Sun Jul 29 10:49:21 2012 -0500

    fixed end date edit display to have leading 0

commit 167ad941726c876349bfa445873bdcd475eb8cd8
Author: XXXX <>
Date:   Sun Jul 29 09:13:24 2012 -0500

合并大约有50多个提交,我想知道如何恢复合并,以便仪表板返回到预合并状态

第二部分是,如果我没有合并--no-ff ,我没有将提交' 合并分支''开发'到仪表板 '..我将如何滚动合并回来?


其他问题已涵盖恢复合并提交。 当你做一个快进合并时,你描述的第二个合并,你可以使用git reset来回到之前的状态:

git reset --hard <commit_before_merge>

你可以用git refloggit log或者如果你感觉moxy(并且没有做其他事情)找到<commit_before_merge>git reset --hard HEAD@{1}


从这里:

http://www.christianengvall.se/undo-pushed-merge-git/

git revert -m 1 <merge commit hash>

Git还原添加了一个新的提交,回滚指定的提交。

使用-m 1告诉它,这是一个合并,我们想要回滚到master分支上的父提交。 您将使用-m 2来指定开发分支。


只需用git reset --hard HEAD^重置合并提交。

如果你使用--no-ff git总是会创建一个合并,即使你没有提交任何东西。 如果没有--no-ff git就会快速前进,这意味着你的分支HEAD将被设置为合并分支的HEAD。 要解决此问题,请查找要恢复的commit-id,然后使用git reset --hard $COMMITID

链接地址: http://www.djcxy.com/p/16979.html

上一篇: Rollback a Git merge

下一篇: Undo a merge by pull request?