如何从已删除的git push中真正删除过大的文件?

时间:2016-11-01 20:06:53

标签: git github

在“git push origin master”上发生以下错误:

remote: Resolving deltas: 100% (84/84), completed with 30 local objects.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: e6e85fd0a75d9cd592b377a5078084a6
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File releases/release.1.3.5.tar.bz2 is 180.47 MB; this exceeds GitHub's file size limit of 100.00 MB

我理解错误,文件太大了。所以我删除它并试图再次推。然后发生同样的错误。

在互联网上,我找到了一个可能的解决方案“git rm --cached filename”。但是这样做也失败了:

$ git rm --cached releases/release.1.3.5.tar.bz2 
fatal: pathspec 'releases/release.1.3.5.tar.bz2' did not match any files

有没有解决方案?

2 个答案:

答案 0 :(得分:2)

最终解决方案是:

bfg --delete-files release.1.3.5.tar.bz2
git reflog expire --expire=now --all && git gc --prune=now --aggressive

答案 1 :(得分:1)

您已将文件提交到git索引,并且每个git push都会将该提交推送到服务器。您必须从历史记录中删除该提交,或重写您的历史记录以从发生的所有提交中删除该文件。

请参阅https://help.github.com/articles/remove-sensitive-data/