场景:相信很多团队开发的小伙伴们多多少少都会遇到需要还原回退代码的一些情况。
如果commit但没push,可以考虑重新clone项目或者重新new分支。
如果push到远端仓库了,下面演示如何回退代码到某个历史版本:
例子:master分支有最新的3条push记录,需要将远端 push 3 代码还原回退到 push 1 的版本
1.找到回退版本 push 1 的版本 id(右键Copy Revision Number)
也可以在远端仓库提交记录copy
2.本地回退
强制回退命令:git reset --hard 版本id;
也可以在 idea 操作,右键项目选择 Git => Reset HEAD...
介绍下Reset Head中三种Reset Type类型:
Mixed(默认):回退会保留commit前的修改信息diff;清除暂存区,将暂存区中的文件或代码回到工作区中(举个例子通俗点讲会将已经git add的新建文件从绿色变回红色,需要重新git add再commit推送);不会丢失文件或代码;
Soft(常用):回退会保留commit前的修改信息diff;保留暂存区和工作区(新建文件回退不会变回红色,无需git add直接commit就行);不会丢失文件或代码;
Hard(慎用):彻底回退到某个版本,本地的代码也会变为你回退版本的代码。
3.本地回退后强制推送远端
由于在 idea 直接push会出现冲突报错,在项目所在路径右键打开 Git Bash
强制推送命令:git push -u origin 分支名 -f
4.推送成功后到远端仓库可以看到最新的提交记录已回退
版权归原作者 偏执网友 所有, 如有侵权,请联系我们删除。