git清空暂存区

2020-01-20 git

在实际应用中可能需要删除暂存区中的指定文件,甚至清空暂存区。

下面就通过代码分别介绍一下它的实现过程,首先看一段代码:

$ git status

代码运行效果截图如下:

a:3:{s:3:"pic";s:43:"portal/201808/01/002004cgrl2pdpt0serkty.png";s:5:"thumb";s:0:"";s:6:"remote";N;}

当前暂存区有两个文件antzone.txt和readme.txt。

一.删除暂存区指定文件:

$ git rm --cached readme.txt


将暂存区中的内容删除,工作区中对应的文件并不会受到影响。

git rm readme.txt


 

不但将暂存区中的内容删除,并且工作区中对应的文件也会被删除。

上面两个命令如果要删除多个文件使用空格分隔文件名称即可。
 

二.清空暂存区:

如果理解暂存区的实质,那么实现此功能非常简单,具体参阅Git暂存区深入理解一章节。

我们知道,所谓暂存区实质是.git目录下的index文件,只要将此文件删除,那么就可以认为暂存区被清空。

当前项目状态如下:

a:3:{s:3:"pic";s:43:"portal/201808/01/002146muc557g0zw5g5zca.png";s:5:"thumb";s:0:"";s:6:"remote";N;}

清空暂存区,其实就是删除.git目录下的index文件,代码如下:

$ rm .git/index

现在查看项目状态,截图如下:

a:3:{s:3:"pic";s:43:"portal/201808/01/002300khhlnh494c0nf0hg.png";s:5:"thumb";s:0:"";s:6:"remote";N;}

原来暂存区的两个文件,现在处于未跟踪状态。