前言
使用idea软件操作git非常人性化和方便。
但是如果我的代码使用git提交之后,我想回到以前的版本,此时需要进行git的版本回退。
提交代码分为提交到缓存区、本地库、远程库这3个过程。
下面我将介绍每个阶段的提交对应的回退方法。
本篇文章是掌握git和使用idea操作git的基础为前提的。
如果对使用idea软件操作git的常用操作方法不熟练,请参考我以前的文章:
git常用操作 --- idea编译器 --- 公司实战版-CSDN博客
用idea操作git分支合并 或者 只对自己的提交合并-CSDN博客
git提交时忽略指定文件 和 合并分支时忽略特定文件-CSDN博客
目录
用idea操作git对缓存区代码回退
举个例子
如果我要对在git缓存区的gitTest文件做一个回退,让它退回到本地状态
首先要打开这个gitTest文件,点击右上角的回退键就把gitTest文件到本地状态了
idea编译器中,文件在git缓存区是绿色的,文件是在本地是红色的
用idea操作git对本地库代码回退
在git本地库但是没有推送到远程的代码,回退到git缓存区有两种方式
第一种使用Undo Commit
直接回退,就跟没有发生过一样
打开需要回退的代码提交记录,右键点击Undo Commit
Undo Commit回退的缺点
只能回退最近一次的提交
第二种使用Revert Commit
本质上是进行了一次相反的代码修改提交
举个例子
我现在想把git测试4这次提交的本地库代码回退到缓存区
回退之后会出现一次回退的提交,可以对提交记录的任意一条进行回退,因为中间的提交记录肯定和后面的提交记录有联系,一半不要尝试,因为代码都是循序渐进写的,这样孤零零的回退中间一条记录肯定会出现代码冲突的,一旦代码冲突后面非常麻烦,所以不要轻易尝试哟
Revert Commit回退的缺点
本质上还是一次提交,只是对代码进行了相反的提交,严格来说不是真正的回退,而且这样回退之后一定要提交一次的,因为git上面有记录了,后续再进行Revert Commit回退有可能出现报错
用idea操作git对远程库代码回退
远程库代码是本质上是不能回退的
但是可以巧妙的时候Revert Commit回退的特点,对代码再做一次相反的提交并推送到远程库从而实现远程库代码回退的效果
举个例子
回退 git测试3 这次提交,这次提交是已经推送到远程库了
首先使用Revert Commit进行代码的回退,就是再提交一次把 git测试3 这次提交的代码修改回去,只不过是使用Revert Commit进行一键修改了
点击之后此时出现一次和 git测试3提交记录 相反的提交
然后把这次相反的提交同步到远程仓库,从而实现远程仓库对git测试3这次提交的代码还原