清除文件从Git repo失败,无法创建新的备份

我试图从我的远程仓库中删除一个文件运行:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

但Git抱怨

Cannot create new backup. A previous backup already exists in refs/original/
Force overwriting the backup with -f
rm: cannot remove /.git-rewrite/backup-refs : Permission denied
rm: cannot remove directory /.git-rewrite : Directory not empty

这是在我已经删除Windows上的.git重写目录。

如何删除该文件?它是一个29Mb文件坐在我的repo,所以我非常需要删除该文件。

我试图删除git rebase -i中的提交,但显然是因为提交碰到了很多不同的文件,Git抱怨冲突,我放弃了是安全的。

最佳答案
您已经执行过滤分支操作。过滤分支后,Git会保持对旧提交的引用,以防万一出现问题。

你可以在.git / refs / original / …中找到。删除该目录和其中的所有文件,或使用-f标志强制Git删除旧的引用。

git filter-branch -f \
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

转载注明原文:清除文件从Git repo失败,无法创建新的备份 - 代码日志