git - 无法从存储库中永久删除文件

问题描述:

我试图从我的存储库中删除一些巨大的100MB二进制文件。 我跟着这些指示,这里详细:git - 无法从存储库中永久删除文件

http://stevelorek.com/how-to-shrink-a-git-repository.html

的说明是基于命令:

git filter-branch --tag-name-filter cat --index-filter 'git rm -r --cached --ignore-unmatch filename' --prune-empty -f -- --all 

当我再次运行脚本,后据称删除文件,这确实是不见了。 但是,当我再次克隆存储库时,在推送更改后,文件又回来了。

如何在删除大文件后应用更改?

git push origin --force --all 

根本不会削减它。

编辑:该文件已被删除2年前,所以没有什么提交/删除。 我试图用一些文件添加创建一个虚拟提交,仍然没有去。

+0

为什么'git push origin --force --all'“将其切断”? *是*你如何“应用更改”。 – zwol 2013-05-04 16:43:40

+2

我的猜测是你的遥控器上还有标签,它仍然在其历史记录中引用了该文件的提交。 – 2013-05-04 16:44:04

+0

删除文件后你提交了吗?推只上传什么是提交 – vguzmanp 2013-05-04 16:44:33

我最终将本地干净的存储库转换为裸存储库mentioned here,并用它替换旧的裸存储库。

仍然不知道为什么我无法将更改应用到*存储库。

您可以使用BGF来进行此类清理。

只要推进新的已清理的提交,只要旧的提交仍然可到达,就不会清理其他存储库。