如果合并错了,但是还没有push,还原的简单粗暴的方式就是把合并后的分支删了。
本文主要讲的是git合并错分支并且已经push了的还原方式
比如:开发分支future_1,合并到项目组共同使用的分支develop上了,并且已经push了,后来才发现,此时需要还原develop分支
1.查看git log找到错误合并的版本号,作为下一步的 回滚版本号
git log --pretty=oneline
如果以上命令找不到可以使用该命令
git log --oneline --merges
2.进行reset操作
git reset --mixed 回滚版本号
idea上对应的操作如图,在commit的节点上右键
该步骤操作,会将错误合并之后 又在该分支修改的代码放如到暂存区,这样,后续修改的代码不会丢,HEAD也指向了 回滚版本号
注意:如果push后并没有其他修改,只是将develop分支还原到合并前,那么,3、4、5步不用做,直接做第6步即可
3.将内容暂存
git stash save "暂存描述"
错误合并分支后,可能又在分支上提交了很多其他的代码,这些代码不能丢
idea上对应的操作如图,在编辑区右键
4.还原到HEAD的父commit
git reset --hard HEAD^
idea上对应的操作如图:
5.将暂存的内容还原。分以下两步
git stash list
查看暂存的内容,通过暂存描述,找到第3步中暂存的编号。
git stash apply stash@{2}
将暂存的内容还原到工作目录,其中stash@{2}需要更换为你所要还原的stash编号
对应的idea的操作如下:
6.强推分支
将代码commit之后强推分支,或者将该分支作为新的开发分支。注意,强推分支一定要保证在这个过程中没有其他人push代码,否则别人push的代码会丢失。