以此文记录下在IDEA中如何回滚项目历史版本,并提交远程git
大体分为两步:工具
第一步,回滚本地代码;.net
第二步,回滚远程代码;命令行
首先,咱们先来回滚本地代码3d
按照下图的步骤,获取你要回滚的历史版本的版本号blog
而后项目根目录右键 Git->Repository->Reset HEAD get
Reset Type 有三种:源码
mixed 默认方式,只保留源码,回退commit和index信息
soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。若是还要提交,直接commit
hard 完全回退,本地源码也会变成上一个版本内容it
此时咱们选择Hard完全回退,点击Reset就能将本地代码版本回滚到指定版本。io
而后咱们开始将回滚的本地代码提交到远程仓库,此时有两种方式:
第一种,直接强制提交,使用git命令提交 git push -f,可是这样会把回滚版本以后的提交记录所有删除,所以不建议这样作。
第二种,用前面咱们回滚本地的方式,再次回滚到最新版本。
首先,咱们获取到远程分支最新版本的版本号
而后,咱们再次Git->Repository->Reset HEAD 此次与以前有些不同,咱们Reset Type采用Mixed方式将源码保留,而后点击Reset。
最后咱们发现代码已是旧版本的代码,而且版本仍是最新版本,此时正常提交push后咱们的本地和远程代码的回滚就完成了。
参考:https://blog.csdn.net/gomeplus/article/details/78241070
上面的操做基于IDEA工具来进行操做,其底层原理为利用git的tag标签回滚
git tag操做参考:https://blog.csdn.net/fuchaosz/article/details/51698896
咱们只在此证实利用Git tag回滚操做与上面的IDEA操做的关系
首先,切换到IDEA的Terminal命令行(也能够是dos命令行,Git Bash命令行),执行下面的命令
注意tag详细信息里面的commit id
咱们在看看git的历史提交记录中上面tag提交的那次记录的Revision Number
Revision Number为 b8e7431ac80cc37d315362b7d2968d4940583820,不一样人的编号会不同,可是commit id 与 Revision Number必定是同样的
那么咱们以前IDEA操做的也都是经过这种原理来实现的。