目录
一、问题描述
二、方式1:git命令撤销(更专业)
1、文件已git add,未git commit
2、本地修改,未git add
(1)撤销处于unstage的文件,即删除已有变动
(2)如何撤销 Untracked files 新创建的文件和目录
3、操作示范
三、方式2:git gui撤销(更简单)
1、打开 git gui
2、在git gui界面操作
一、问题描述
在git中,有些内容想撤销回来,不更改,我该如何操作呢?
下面提供两种方式处理。
二、方式1:git命令撤销(更专业)
1、文件已git add,未git commit
此时,所有文件都处于stage状态。
想stage文件变为 unstage 和 Untracked files 文件,
可以使用下面的命令撤销一个或多个文件:
git restore --staged <file>...
【说明】
1,多个时,中间用空格隔开
git restore --staged {modifiedFile} {newFile} {deletedFile}
2,文件可以是修改的(modified),新建的(new file),已被删除的(deleted)。
3,文件:执行 git status 时展示的文件路径。
2、本地修改,未git add
(1)撤销处于unstage的文件,即删除已有变动
使用下面的命令撤销一个或多个文件:
git restore <file>...
【说明】
1,可以是多个,中间用空格隔开
git restore {modifiedFile} {deletedFile}
2,文件可以是修改的(modified),已被删除的(deleted)。
3,新建的(new file)文件不能操作,如果操作返回下面的异常:
(2)如何撤销 Untracked files 新创建的文件和目录
注:Untracked files(未监控) 是我新增的文件,还没有被跟踪的文件。
【解决方案】
1,查看要删除的文件和目录,避免误删
git clean -ndf
2,在项目中查找和删除
在项目代码中,
根据上面查看的文件路径,找到文件,
然后执行删除操作。
【方案中的第二步为什么不用命令说明】
1,删除文件
git clean -xf
如下图,删除了我不想删除的 .iml 文件。
2,删除文件和目录
git clean -xdf
如下图,也是删除了我不想删除的文件和目录。
所以,以上两个命令是个坑,根据自身情况进行操作。
如果操作了也有补救,看我这篇内容:
idea中误删.iml和.idea文件,如何处理-CSDN博客
3、操作示范
注:st 是 status
总共有5个操作:
第一个,查看是git add的内容,是绿色,表示是stage文件。
第二三个,通过 git restore --staged 处理,再次查看,是红色,表示是unstage文件。
第四五个,再执行 git restore ,查看发现已经没有变动的文件了,表示已经删除了已有的变动。
三、方式2:git gui撤销(更简单)
1、打开 git gui
在git bash中,
切换到git项目目录下,
执行git gui命令,
触发打开git gui页面。
2、在git gui界面操作
如图,可以git add,git commit,git push,还能撤销 unstage,revert 等。
界面操作,简单方便。
我是程序员娟娟,
致力将工作中遇到的问题和解决方案记录下来,
分享给更多需要的同行。
如果对你有帮助,不妨点个关注吧!