要撤销将B分支错误合并到A分支的操作,可以按照以下步骤操作(假设当前在A分支):
方法一:使用 git reset(推荐,适用于未推送或可强制推送的情况)
-
回退到合并前的状态:
git reset --hard HEAD~1
如果合并后还有其他提交,使用:
git reset --hard <合并前的提交ID> # 可通过 git reflog 查看
-
强制推送到远程(若已推送):
git push origin A --force
方法二:使用 git revert(适用于已推送且不可强制覆盖的情况)
-
撤销合并提交:
git revert -m 1 <合并提交的ID> # -m 1 表示保留A分支的更改
合并提交ID可通过 git log --merges 查看。
-
推送撤销结果:
git push origin A
关键注意事项:
-
未推送:直接使用 git reset --hard HEAD~1 最快捷。
-
已推送:
-
若团队允许强制推送 → 用 git reset + git push -f
-
若需保留历史 → 用 git revert
-
-
确认状态:
-
操作前用 git reflog 查看操作记录。
-
操作后用 git status 和 git log 验证状态。
-
预防措施:
-
下次合并前先确认分支:
git checkout B # 先切换到目标分支B git merge A # 再将A合并到B(正确流程)
执行后,A分支将恢复到合并前的状态。B分支不受影响,可重新执行正确合并。