git merge --abort
git reflog
git reset --hard HEAD~1

合并分支时解决冲突改错了文件,提交后功能异常,想回到合并之前的干净状态。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,合并已经产生提交,直接改文件无法恢复被覆盖的分支内容。

「git 合并冲突回滚」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。

处理上按这个顺序:未提交的合并用 merge –abort 撤销;已提交则用 reset 回到合并前的提交;确认远端未推送再操作。

改完只确认一件事:工作区回到合并前状态,分支指针与预期提交一致。

作者 9823189