繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM