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

我尝试通过运行以下命令从远程回购中删除文件:

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

但Git抱怨说

无法创建新的备份。 之前的备份已经存在于refs / original /
用-f强制覆盖备份
rm:无法删除/.git-rewrite/backup-refs:权限被拒绝
rm:无法删除目录/.git-rewrite:目录不为空

这是在我已经删除Windows上的.git-rewrite目录之后。

我如何删除该文件? 这是一个位于我的回购站上的29Mb文件,所以我非常需要删除该文件。

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


您已经执行了过滤器分支操作。 在过滤分支之后,Git会保留旧的提交,以防出现问题。

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

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

使用此命令删除原始备份:

git update-ref -d refs/original/refs/heads/master

这里是我用来过滤分支我的git回购:https://gist.github.com/k06a/25a0214c98bc19fd6817


我有同样的问题,上面的答案没有解决它。 没有.git / refs / original /目录。 我的解决方案是删除.git / packed-refs文件。

链接地址: http://www.djcxy.com/p/46973.html

上一篇: Purging file from Git repo failed, unable to create new backup

下一篇: How can I rewrite history so that all files, except the ones I already moved, are in a subdirectory?