文章目录
前言
当在idea中不小心合并了不应该合并的其他分支,或想要撤回commit时,就可以以下使用
git reset --hard 'HEAD@{1}'
场景
刚做完 merge,还没做任何别的 git 操作(没有 commit、checkout、reset)
这时 reflog 还保留这条记录,HEAD@{1} 就是 merge 之前的 master 节点,执行git reset --hard HEAD@{1} 能完美撤销本次本地合并。
如本地分支合并其他的分支,当本地没 push 到远程 master 的场景:可以使用 ,如果已经 push 到远程 master:不要使用,执行了也不能强推!
HEAD@{1} 是什么
HEAD@{1} = reflog 里上一次 HEAD 所在位置 ,也就是执行 merge 操作之前 master 的位置。
执行:git merge xx → HEAD 跳到 merge 提交;HEAD@{1} 就是 merge 前的那个 commit。