我想从存储库中删除文件。

git rm file_to_remove.txt

将从存储库中删除文件,但也将从本地文件系统中删除文件。如何从回购中删除此文件而不删除文件的本地副本?


当前回答

要从repo中删除整个文件夹(如Resharper文件),请执行以下操作:

git rm -r --cached folderName

我提交了一些重新格式化的文件,不希望这些文件为其他项目用户保留。

其他回答

git rm文档说明:

当给定--cached时,暂存内容必须与分支的尖端或磁盘上的文件相匹配,从而允许仅从索引中删除文件。

因此,对于单个文件:

git rm --cached file_to_remove.txt

对于单个目录:

git rm --cached -r directory_to_remove

此外,如果您提交了敏感数据(例如包含密码的文件),则应将其从存储库的历史记录中完全删除。这里有一个指导说明如何做到这一点:http://help.github.com/remove-sensitive-data/

要从repo中删除整个文件夹(如Resharper文件),请执行以下操作:

git rm -r --cached folderName

我提交了一些重新格式化的文件,不希望这些文件为其他项目用户保留。

更通用的解决方案:

编辑.gitignore文件。echo mylogfile.log>>.git忽略从索引中删除所有项。git rm-r-f--缓存。重建索引。git添加。进行新提交gitcommit-m“已删除mylogfile.log”

如果您只想取消跟踪文件而不从本地和远程存储库中删除,请使用以下命令:

git update-index --assume-unchanged  file_name_with_path