Git 删除文件
简介
参考 git-scm git rm
https://git-scm.com/docs/git-rm
git rm 命令
https://www.yiibai.com/git/git_rm.html
git rm 与 git rm --cached 的区别
git rm : 同时从工作区和索引中删除文件。即本地的文件也被删除了。
git rm --cached : 从索引中删除文件。但是本地文件还存在,只是不希望这个文件被版本控制。
举例说明:
假设如有版本库如下,

使用 git rm text1.txt 删除 text1.txt 之后,索引和本地文件都被删除了,如下图所示:

使用 git rm --cached text1.txt 把文件 text1.txt 从 git 的索引库中移除,但是对文件 text1.txt 本身并不进行任何操作,如下图所示:

git rm 与 rm 的区别
git rm: 来删除文件,同时还会将这个删除操作记录下来;
rm: 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除;
提示:即使你已经通过 rm 将某个文件删除掉了,也可以再通过 git rm 命令重新将该文件从 git 的记录中删除掉。
注意:上述操作最后要执行 git commit 才真正提交到 git 仓库
使用教程
基本用法
git rm -r --cached <file>...
命令说明:
| 名称 | 描述 |
|---|---|
| git rm | 删除文件或者目录 |
| -r | 当删除目录时,进行级联删除。 |
| –cached | 只删除暂存区的文件或者目录,同时删除当前工作目录和暂存区的文件或者目录。 |
| file | 要删除的文件或目录,以空格隔开填写多个,文件名支持通配符。 |
使用示例
同时删除当前工作目录和暂存区的文件或者目录
git rm <file>
git rm -r <path>
只删除暂存区的文件或者目录
git rm --cache <file>
git rm -r --cache <path>
操作指南
删除远程仓库文件或目录
直接删除法
直接删除指定的文件或者目录(适用于要删除的文件数量比较小的情况)。
git rm -r --cached demo
git commit -m '删除 demo 文件夹'
git push -u origin master
过滤删除法
在工程的根目录下添加 .gitignore 文件,将不需要的文件过滤掉,然后执行命令。该操作的原理是将暂存区中的所有文件删除,然后通过 git add . 命令将经过 .gitignore 文件过滤的文件添加到暂存区。该方法适用于大批量删除文件。
git rm -r --cached .
git add .
git commit
git push -u origin master
最后我们也可以通过 git rm --help 命令了解更详细的用法。