赞
踩
作为一名后端开发,相信大家一定遇到过这样的情景,代码开发人员过多,并且开发分支过多,导致代码版本管理困难,这样就难免遇到一些代码合并出错,比如,当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,或者说合并错了分支,然而也push到远程仓库去了。这种情况下该如何回退?
已经提交到仓库(本地和远程仓库)的内容如何利用IDEA回退到指定版本?
Revert操作:Revert操作会当成一个新的提交记录,追加到提交日志当中,这样便保留了原来的提交记录。(推荐)
利用IDEA的Reset Head指针:Reset Head指针,会抛弃原来的提交记录,使Head指针强制指向指定的版本。
上图中,假设master
分支是生产分支,dev_wyh
分支是开发分支,现在将dev_wyh
分支的代码推送到master
分支,如下图所示:
假设此时我们发现代码合错了,需要将master
分支代码回退到合并之前的版本,即Git信息为第一次:推送
处,接下来我们可以用上面的两种方法去回退。
本次实验环境未必和您的情况完全相符,不过大致思路是相同的。如果您在解决问题过程中遇到冲突,解决就好了。
当在版本第一次:推送
基础上进行修改内容,并提交本地、远程仓库后,发现提交的内容不是我想要的,或者是完全错误的,需要回退到版本第一次:推送
。
1、在想要回退历史版本上单击鼠标右键,选择Revert Commit
(见下图)
2、这时如果弹出冲突对话框,双击冲突文件或点MERGE
以解决冲突。(见下图)
3、在解决冲突对话框中,决定最终的版本文件。(见下图)
4、填写提交信息并提交。(见下图)
5、同步提交到远程仓库(见下图)
这种回退的好处在于,如果后悔了“回退”这个操作,也可以回退到没有回退之前的版本。因为历史记录还保留提交记录。
当在版本第一次:推送
基础上进行修改内容,并提交本地、远程仓库后,发现提交的内容不是我想要的,或者是完全错误的,需要回退到版本第一次:推送
。
1、在想要回退历史版本上单击鼠标右键,选择Reset Current Branch to Here...
(见下图)
2、在弹出的git reset 参数类型选择框中,选择Hard(见下图),并RESET
3、本地仓库回退到了第一次:推送
,需要同步远程仓库,执行push操作。
4、此时本地master
分支代码已经回退,但无法推送到远程master
分支,如果用命令行git push
后,提示Push拒绝。打开Terminal,在本项目目录下,输入git push -f
强制同步远程仓库。
5、代码成功回退,同步后,会发现git日志丢失了版本1以后的提交。。(如下图)
除了Hard和Mixed选项,其它回退选项的效果讲解可以去查阅这篇博文:IDEA Git Reset 选项说明
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。