一、撤掉
1、如果还没 git add file ,使用该指令进行撤销: git checkout -- fileName
只能清空全部已修改的问题件, 但是对于新建的文件和文件夹无法清空, 必须组合下面命令;
$ git clean -d
2、如果已经git add file , 但是没有 git commit -m "" 分两步操作:
a、git reset HEAD readme.txt
b、git status
c、git checkout -- file
3、如果已经git add file 并且已经 git commit ,那么回退版本办法是:
a、通过 git log 或者 git log --pretty=oneline 、git reflog
b、找到对应的commit id进行回退:git reset --hard 1094a
二、删除
1、从暂存区删除
当我们使用 git add 命令添加工作区的文件到暂存区时,我们想要对这个暂存区里面的文件执行删除操作时,我们则使用 git rm --cached <file> 来修改暂存区目录(不修改工作区目录), git rm --cached <file> 相当于git add的一个逆过程。
示例:
a.使用 git status 命令 来查看 暂存区情况,可以看到这时暂存区是没有文件的。
b.当我们使用 git add命令往暂存区添加文件时,可以看到暂存区内容发生变化(新增加了 file.txt 文件)。
c.使用git rm --cached <file> 命令删除暂存区中的 file.txt 文件,可以看到暂存区中已经没有数据了。
2.从版本库删除
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
a、git rm test.txt
b、git commit -m "remove test.txt"
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
git checkout -- test.txt(从暂存区恢复)
附:清空暂存区
所谓的暂存区仅仅是.git目录下的一个index文件罢了,这也是为了什么被称为index(索引)
当删除暂存区内容的时候,其实就是删除index文件中的内容,.git/objects目录中的内容不会被删除。
指令:rm
.git
/index 直接删除该文件夹即可
参考文章:
2.https://blog.csdn.net/qq929371786/article/details/80014532
3.https://blog.csdn.net/qq_37266079/article/details/96290591