3

如何从提交历史中删除错误提交的大文件?在我删除有问题的文件之前,Git 不会再向远程推送任何提交。从那以后,我试图删除它们,但它们存在于以前的提交中。

注意:我不再需要项目中的大文件。

git push origin my-branch得到:

remote: warning: File public/images/reserve_assets/myfile.tif is 63.60 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 0c08ce8916353c82c7328a241a40c8ca
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File public/images/reserve_assets/myotherfile.tif is 107.34 MB; this exceeds GitHub's file size limit of 100.00 MB

然后

! [remote rejected] my-branch -> my-branch (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:RepoOwner/myrepo.git'

我已经尝试git filter-branch --tree-filter 'rm -f myfile.tif' HEAD过在提交历史中执行重写。它输出

Rewrite 1cd9b031d047d4270ff8b488b3b5e8db2905c687 (87/93) (12 seconds passed, remaining 0 predicted)

但接着说WARNING: Ref 'refs/heads/my-branch' is unchanged。似乎它正在重写并从历史中删除,但我仍然无法推动。

4

1 回答 1

1

我还有其他文件也很大。您不能一次删除单个文件,git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD因为每次它创建一个备份时。

git filter-branch -f --tree-filter 'rm -rf path/to/folder' HEAD通过额外删除整个有问题的文件夹-f以强制以前的备份重写可以解决问题(假设您之前尝试过删除单个文件)

于 2019-04-09T02:26:27.170 回答