美文网首页
Git 回滚Merge的代码(commit is a merge

Git 回滚Merge的代码(commit is a merge

作者: 汗青fullstack | 来源:发表于2021-01-13 12:09 被阅读0次

我们通过git revert xxx 命令回滚某次merge过的commit,此时会报错commit is a merge but no -m option was given.,这是因为当前的merge commit其实包含了两个子commit,也就是当时合并的两个commit,因此在执行git revert 的时候会失败,需要选择回滚具体的两个子commit中的一个才可以正常回滚。

案例分析

1.分析log,确认需要回滚的commit

我们通过git log xxx 可以看到当前commit下的Merge: f2fe8c9 6103926,第二个id:6103926就是我要回滚的commitid前7位。

git log xxx
git log 6103926
2.git revert xxx -m 1

按照git revert xxx报错的提示,应该追加-m命令,以下是命令的注释

-m, --mainline <parent-number>
                        select mainline parent

我们要回滚第二个id:6103926,则-m 1,表示保留以第1条为主线回滚第2条commit,如果回滚第一个则-m 2
最终我们要回滚的命令:

 git revert 76a2dac344e528799173c4eff843a7 -m 1

执行完毕就可以提交了。


补充说明(发现一个解释的更清楚的文章)

相关文章

  • Git 回滚Merge的代码(commit is a merge

    我们通过git revert xxx 命令回滚某次merge过的commit,此时会报错commit is a m...

  • Git - 回滚

    回滚命令 场景回滚某个commit回滚到某个commit恢复到与HEAD一致回滚Merge回滚最新的Merge回滚...

  • git回滚

    git回滚 merge后有冲突,不想解决冲突,想取消merge git reset 回退到某个版本 回退到某个版本...

  • Git merge回滚

    merge失误 未push到远程的情况下 git reset --hard origin/你的分支名 这条命令的意...

  • Git回滚Merge

    在Git操作中,有一些典型的情况需要考虑,比如回滚Merge操作。这里记录下遇到需要这种操作的时候怎么处理 中断合...

  • git中merge和rebase的区别

    1.采用merge和rebase后,git log的区别,merge命令不会保留merge的分支的commit:2...

  • Undo a Git merge that hasn't bee

    With git reflog check which commit is one prior the merge...

  • git命令

    Git回滚代码到某个commit

  • 2018-01-22

    undo a merge git revert commit_id -m 1 revert a commit gi...

  • Git 查找两个分支的共同节点

    使用 merge-base 命令: git merge-base 显示多个 commit 合并时,使用的共同 ba...

网友评论

      本文标题:Git 回滚Merge的代码(commit is a merge

      本文链接:https://www.haomeiwen.com/subject/sfjuaktx.html