一.使用linux命令rm删除:

在当前工作区有文件readme.txt,并被git跟踪,且有提交历史。运行如下命令:

rm readme.txt

删除后状态截图

分析如下:

(1)readme.txt文件的状态是被删除。

(2)此时工作区中的文件已经被删除,

(3)Changes not staged for commit 表明删除文件和新增文件对Git来说都是一种改变,并没有将此改变提交到暂存区。如果要切实在commit提交中也要删除此文件,那么就要首先将此种改变提交暂存区:

git add readme.txt

然后完成此次提交:

git commit -m "delete readme"
 

二.使用git rm命令删除:

通过纯粹的linux命令删除一个文件需要三个步骤:

(1)rm 删除文件。

(2)将此种改变提交暂存区。

(3)最后进行commit提交。

使用git rm命令可以节省一步,代码如下:

git rm readme.txt

查看一下此时状态:

a:3:{s:3:\"pic\";s:43:\"portal/201807/26/010036vsxacxc0afsz10c0.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

分析如下:

(1)readme.txt处于deleted状态。

(2)工作区中的文件已经被删除。

(3)Changes to be committed表明此删除改变已经提交到暂存区,如果要切实在commit提交中也要删除此文件,就可以省略git add命令,直接commit提交即可。

git commit -m "delete readme"
 

三.使用--cached参数:

前面的rm和git rm都会将工作区的文件删除,如果仅仅想让文件脱离Git的跟踪,可以后面加--cached。

这样工作区的文件不会删除,仅删除暂存区中对应的文件。

代码如下:

git rm readme.txt --cached

查看一下状态:

a:3:{s:3:\"pic\";s:43:\"portal/201807/26/010150og1nn178i7qo9e9h.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

readme.txt处于未跟踪状态,也就是从暂存区删除。

特别说明:处于未跟踪状态只是没有存在于暂存区,历史提交记录中的记录依然存在。

 

附:清空暂存区

所谓的暂存区仅仅是.git目录下的一个index文件罢了,这也是为了什么被称为index(索引)

a:3:{s:3:\"pic\";s:43:\"portal/201807/18/001723t4dck4mdo1etp1sx.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

当删除暂存区内容的时候,其实就是删除index文件中的内容,.git/objects目录中的内容不会被删除。

指令:rm .git/index 直接删除该文件夹即可

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐