IDEA git 代码已经commit,但未 push推送,如何撤销提交缓存区代码

  • Post author:
  • Post category:其他


记录自己提交代码时,手滑错误commit了多余的文件,但未push到云端,想要撤回整个commit的操作:

idea菜单栏上的 VCS–>Git–>Reset HEAD…

在这里插入图片描述

出现如下弹框:

在这里插入图片描述

此时按照图中选择回退的方式,以及回退到哪个版本,点击“Reset”即可,在”Version Control” 中 “log” 里,最新一次提交的记录消失即回退成功。

题外扩展

其中:Reset Type

(1)、Mixed是默认方式。只保留源码,会回退 commit 和 index 的信息;

(2)、Soft 回退到某个版本。只回退了 commit 的信息,之前写的代码还是保留的,不会恢复到 index file 一级。如果还要提交,直接 commit;

(3)、Hard 彻底回退,本地源码也会变成上一个版本内容,不保留之前 commit 的代码。

打个比方:

版本一:增加文件a.txt,并写下内容 “版本一”

版本二:修改文件a.txt,并增加内容,写下 “版本二”

在版本二的基础上,增加了b.txt文件,并添加内容“版本三”(并git add),然后commit;

一、用Mix方式回到版本一:

增加的b.txt文件则会变成红色的状态(未git add的状态),表示此文件不被git版本追踪控制

二、用Soft 方式回到版本一:

增加的b.txt文件则会变成绿色的状态(git add的状态),表示此文件被git版本追踪控制了

三、用Hard方式回到版本一:

版本二以及版本三的内容全部消失,只剩下版本一的内容

用Mix方式或者Soft方式 都可以撤销commit操作,同时自己做修改过的代码重置为未commit的状态,再次重新commit即可。

注:HEAD~ 和 HEAD^ 都可,HEAD~1 即撤销最新一次的本地提交;HEAD~ 和 HEAD~1 是一个意思。HEAD~~ 和 HEAD^^ 都是指次次新版本,也就是倒数第三个版本,以此类推,数字同理。



版权声明:本文为Heikepengmu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。