【发布时间】:2020-04-08 20:41:54
【问题描述】:
尝试在 git 中提交更改时,我收到以下错误
remote: error: File folder/Unconfirmed 866711.crdownload is 486.30 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected
![remote rejected] master -> master (pre-receive hook declined)
所以,我尝试使用here 给出的命令删除缓存文件
git rm --cached "Unconfirmed 866711.crdownload"
还有,
git rm --cached "Unconfirmed\ 866711.crdownload"
但是,它不起作用
fatal: pathspec 'Unconfirmed\ 866711.crdownload' did not match any files
关于如何解决此问题的任何建议? 编辑: 按照下面的建议,我尝试了
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch folder/Unconfirmed 866711.crdownload" --prune-empty --tag-name-filter cat -- --all
我得到以下信息,
Rewrite 493310fe1e5fd4f06c9ee30b5b5157baae05358b (265/266) (181 seconds passed, remaining 0 predicted)
WARNING: Ref 'refs/heads/master' is unchanged
Ref 'refs/remotes/origin/master' was rewritten
WARNING: Ref 'refs/stash' is unchanged
在 git filter 之后,我从文件夹中删除了大文件并删除了
git push origin --force --all
这会导致同样的错误
remote: error: File folder/Unconfirmed 866711.crdownload is 486.30 MB; this exceeds GitHub's file size limit of 100.00 MB
【问题讨论】:
-
@phd 我尝试了
git filter-branch --tree-filter 'rm -f folder/Unconfirmed 866711.crdownload' HEAD在您分享的链接中的一篇帖子中提出的建议。不幸的是,我得到了fatal: ambiguous argument 'folder/Unconfirmed': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'。可能由于文件名中的空格,文件路径似乎已损坏。关于如何跟踪带空格的文件名路径有什么建议吗?