本文主要记录在 Idea 中 如何通过 Git 回滚本地仓库和远程仓库代码版本

一、提交本地仓库代码回滚

1、模拟提交到本地仓库

模拟一次提交,提交到本地仓库,未提交到远程仓库

本地仓库 有

idea提交TortoiseSVN_idea提交TortoiseSVN

远程仓库 无

idea提交TortoiseSVN_intellij-idea_02

2、复制提交版本号

复制你想回到的版本的版本号,假如这里回到本次提交之前的版本

idea提交TortoiseSVN_git_03

3、回滚

项目右键,选择 Reset HEAD

idea提交TortoiseSVN_idea提交TortoiseSVN_04

idea提交TortoiseSVN_git_05

Reset Type 有三种:

3.1、mixed

mixed 默认方式,只保留源码,回退commit和index信息

回退之后如下,文件也显示未加入 git 管理

idea提交TortoiseSVN_回滚_06

3.2、soft

soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit

回退之后如下,文件回到未提交状态

idea提交TortoiseSVN_git_07

3.3、hard

hard:彻底回退,本地源码也会变成上一个版本内容
这种方式回退之后,上一次提交的代码也就没有了

选择合适自己的回滚方式

To Commit:粘贴第2步复制的版本号

点击 Reset 回滚

本地仓库提交记录无

idea提交TortoiseSVN_回滚_08

二、远程仓库代码回滚

远程仓库回滚和本地仓库都差不多,只是多了一行命令

原理就是,先回滚本地仓库,然后把本地仓库代码版本强制提交到远程仓库就可以了

1、模拟提交远程仓库

idea提交TortoiseSVN_intellij-idea_09

2、先回滚本地仓库

复制需要回滚到的版本号

idea提交TortoiseSVN_git_03

idea提交TortoiseSVN_idea提交TortoiseSVN_04

idea提交TortoiseSVN_git_12

点击 Reset 回滚之后

本地仓库没了

idea提交TortoiseSVN_intellij-idea_13

远程仓库还在

idea提交TortoiseSVN_intellij-idea_14

3、回滚远程仓库

打开控制台执行以下命令,强制提交本地仓库版本

git push -f

idea提交TortoiseSVN_远程仓库_15

执行之后再看远程仓库,就会发现提交记录已经没有了,远程仓库的提交记录也被回滚了

idea提交TortoiseSVN_idea提交TortoiseSVN_16