在平时的开发过程中,我们偶尔会误将一些文件提交至 git 远程仓库,比如 eclipse、idea 的配置文件。对于本地而言,这些配置文件是每个开发者的个人配置,它支撑着项目在 IDE 中的正常运行。源于远程仓库而言,这些文件没有价值,其他开发者也需要这些配置。因此就会产生这样一种情况,我如何将 git 远程仓库的文件删除,而保留本地文件呢?
有这样一种方法:将整个工程备份,然后在本地删除无用的文件,提交到 git 远程仓库,之后再从备份的目录中找到那些文件,复制到源工程目录中。我相信很多小伙伴这么做过,今天叫大家一种比较高级的方法。
一、命令介绍
git rm -r --cached <file>...
1
命令说明:
名称 描述
git rm 删除文件或者目录
-r 当删除目录时,进行级联删除。
–cached 只删除暂存区的文件或者目录,同时删除当前工作目录和暂存区的文件或者目录。
file 要删除的文件或目录,以空格隔开填写多个,文件名支持通配符。
1、同时删除当前工作目录和暂存区的文件或者目录。
git rm <file>
git rm -r <path>
2、只删除暂存区的文件或者目录。
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 命令了解更详细的用法。