Git回滚Merge

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

中断合并

在合并的时候,出现了冲突,但是还没有解决冲突,没有进行提交的时候,放弃合并。

方案:

git merge --abort
426671-b365a7de4a694f5e.png
image.png

撤销合并

如果已经合并了代码,但是合并完成发现,这是一个错误的合并。
C6与C4进行合并


426671-4607339fa2ecb364.png
image.png

方案1:

git reset --hard HEAD
# 或者使用更精确的指定回滚到某一次的commit上面
git reset --hard commit_id

使用命令查看当前的提交状态:

git log --graph --oneline
426671-c6f5466bd111a425.png
image.png

执行git reset --hard 3144260之后。可以看到master已经回退了


426671-d1938ee9994938ff.png
image.png
426671-f6747c61c58df665.png
image.png

方案2

git reset命令是使HEAD节点指向曾经提交的一个节点上,但是有时候想要保留每一个操作,我们可以使用git revert命令,它会创建新的提交,并撤销合并的内容。

git revert -m 1 HEAD
426671-3e46b36c03c7ed4e.png
image.png
426671-1af9b30dfb2be17c.png
image.png

最后

这里主要就是说合并出错的时候怎么办。
还没commit:git merge --abort ,丢弃正在进行的合并
已经commit:

  • git revert -m 1 HEAD 新建一个commit,并且回到合并之前的状态
  • git reset --hard commit_id 回退到指定的commit节点

猜你喜欢

转载自blog.csdn.net/weixin_34128534/article/details/87638734