背景:今天在特性分支合并master代码的时候,执行了git merge master操作,代码有冲突,所有merge过来的代码出现在version control里,解决冲突后,准备提交代码,代码分析出现很多警告,又有别的事情,就在version control点了revert,想把合过来的代码都丢弃。当我再次修改代码提交代码时,合过来的代码都显示提交了成了回退后的样子,并且再次merge master时,显示已经merge过了,不再让merge了。
解决办法:git reset 这里不再赘述用法,参考:https://www.jianshu.com/p/c2ec5f06cf1a
首先,可以在idea直接操作,点击想回退的分支,右击选择 reset current branch to here…,出现弹框直接选择hard,点击reset。
此时,本地工作空间已经直接回退到了该版本,再执行git push origin xxx即可,则远程的也回退到了该分支。
如果跟远程的该分支有冲突,远程分支版本比本地分支版本高,不让push时,执行git push origin xxxx -f,强制提交,将本地同步到远程。
现在可以重新进行 merge master了,代码也回到之前的版本了。