协慌网

登录 贡献 社区

从 Git 存储库中删除文件而不从本地文件系统中删除它

我的初始提交包含一些日志文件。我已将*log添加到我的.gitignore ,现在我想从我的存储库中删除日志文件。

git rm mylogfile.log

将从存储库中删除文件,但也将从本地文件系统中删除它。

如何在删除文件的本地副本的情况下从存储库中删除此文件?

答案

对于单个文件:

git rm --cached mylogfile.log

对于单个目录:

git rm --cached -r mydirectory

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

git rm -r --cached folderName

我已经提交了一些 resharper 文件,并且不希望这些文件持续存在于其他项目用户。

您还可以根据. gitignore 从存储库中删除文件,而不从本地文件系统中删除它们:

git rm --cached `git ls-files -i -X .gitignore`

或者,在 Windows Powershell 上:

git rm --cached $(git ls-files -i -X .gitignore)