【问题标题】:Removing large files(with spaces in file name) that are cached in git删除缓存在 git 中的大文件(文件名中有空格)
【发布时间】: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

【问题讨论】:

标签: git github


【解决方案1】:

我试图关注这个问题,似乎是因为文件很大。

我关注了一篇关于 medium 的文章,希望对你有帮助。

请找到https://medium.com/@marcosantonocito/fixing-the-gh001-large-files-detected-you-may-want-to-try-git-large-file-storage-43336b983272作为链接。

据我了解,这是因为现在跟踪文件并且可以提供帮助的命令是: git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch fixtures/11_user_answer.json'

【讨论】:

【解决方案2】:

您可以使用带有转义字符的空间中的文件名的过滤器分支。 因此,如果您的大文件名为huge file.zip,您的命令将是:

git filter-branch --tree-filter 'rm -rf huge\ file.zip' HEAD
git push  

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 2013-05-02
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 2020-08-09
    • 1970-01-01
    相关资源
    最近更新 更多