如何撤销已推送到远程的Git合并操作?
撤销错误合并并恢复分支状态
前提:你的个人分支仅自己使用,无其他协作者同步该分支
定位合并前的提交版本
运行git log查看提交历史,找到合并操作之前的提交哈希值(格式类似a1b2c3d9f8e7)。如果日志条目太多,加--oneline参数简化输出:git log --oneline要是记不清合并前的提交,用
git reflog查看所有分支操作记录,找到合并动作之前的条目对应的ID或HEAD@{n}标记。重置本地分支到合并前状态
用硬重置彻底回滚到目标提交,丢弃错误的合并:git reset --hard <合并前的提交ID>比如找到的ID是
a1b2c3d,就执行git reset --hard a1b2c3d。强制覆盖远程分支
因为远程已经存在错误的合并提交,需要强制推送覆盖:git push -f origin <你的个人分支名>
补充说明
如果你的分支有其他协作者,禁止使用强制推送,可以用git revert生成撤销合并的新提交:
git revert -m 1 <合并提交的ID>
这里-m 1表示保留合并时的第一个父分支(即你的个人分支原本状态),执行完成后推送到远程即可,不会影响协作者的本地代码。
内容的提问来源于stack exchange,提问作者IvanZharov
相关产品推荐
相关产品推荐

