[英]Purging file from Git repo failed, unable to create new backup
我尝试通过运行以下命令从远程仓库中删除文件:
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抱怨冲突并且我中止了安全。
您已经执行了过滤器分支操作。 在filter-branch之后,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 repo过滤分支的要点: https : //gist.github.com/k06a/25a0214c98bc19fd6817
我有同样的问题,上面的答案没有解决它。 没有.git / refs / original /目录。 我的解决方案是删除.git / packed-refs文件。
向过滤器分支命令添加强制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.