截至2013年6月18日,此更改如何影响我的现有存储库,其文件超出此限制?我上次用大文件推了2个月前。
我有一个我在本地删除的大文件,但我现在无法推送任何内容。我得到一个“远程错误”...远程:错误:文件cron_log.log是126.91 MB;这超出了GitHub的文件大小限制100 MB
我在原始推送后将文件添加到.gitignore ...但它仍然存在于远程(原点)
在本地删除它应该在原点(Github)摆脱它吗? ...但是...它不会让我推,因为Github上的文件超出了限制......
https://github.com/blog/1533-new-file-size-limits
这些是我发出的命令加上错误信息..
git add . git commit -m "delete cron_log.log" git push origin master remote: Error code: 40bef1f6653fd2410fb2ab40242bc879 remote: warning: Error GH413: Large files detected. remote: warning: See http://git.io/iEPt8g for more information. remote: error: File cron_log.log is 141.41 MB; this exceeds GitHub's file size limit of 100 MB remote: error: File cron_log.log is 126.91 MB; this exceeds GitHub's file size limit of 100 MB To https://github.com/slinds(omited_here)/linexxxx(omited_here).git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://github.com/slinds(omited_here)然后我尝试了像这样的事情
git rm cron_log.log
git rm --cached cron_log.log
同样的错误。
答案 0 :(得分:26)
您好,您可以通过这种方式轻松解决:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch FILENAME.TAR'
--prune-empty --tag-name-filter cat -- --all
答案 1 :(得分:24)
正如rlb.usa所述,Github添加了一个文件大小限制,阻止您推送文件> 100MB。您试图在新提交中删除该文件并尝试推送它。这失败了,因为你不只是推动最后一次提交,还有其他三个提交。这三个提交包含cron_log的版本,大小为141MB和126MB。它们会导致你的失败。
要解决此问题,您有两种选择:
git rebase -i origin/master
,设置每个提交以编辑并删除每个提交git commit --amend
的文件。 答案 2 :(得分:5)
根据GitHub的new file size limit(也称:working with large files),仅在数小时前制定,GitHub现在有1GB文件大小存储库的新策略,警告推送文件超过50 MB并完全拒绝文件上载100MB。
当您按下大于50 MB的文件时,GitHub会发出警告。我们会拒绝 推送包含大于100 MB的文件。我们这样做了一些 的原因。
你有几个选择,但不是很多:
答案 3 :(得分:1)
GitHub上每个文件的实际限制为100 MiB,而不是100 MB。
演示:https://github.com/Franck-Dernoncourt/github-max-file-size
https://help.github.com/articles/what-is-my-disk-quota/(mirror)错误地声称他们严格限制超过100 MB的文件
在推送时可以看到MB和MiB之间的混淆:在下面的示例中,来自GitHub服务器的错误消息表明文件是101 MB,而git正确地表明它是101 MiB:
~\Documents\GitHub\test123 [master ↑1 +3 ~0 -0 !]> git push
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 101.03 MiB | 896.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local objects.
remote: error: GH001: Large files detected. You may want to try Git Large File S
torage - https://git-lfs.github.com.
remote: error: Trace: e9206a9cd05c4ff5de79bba9d4caf9df
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File 101MB is 101.00 MB; this exceeds GitHub's file size limit of
100.00 MB
To https://github.com/Franck-Dernoncourt/test123.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/Franck-Dernoncourt/test12
3.git'
~\Documents\GitHub\test123 [master ↑1 +3 ~0 -0 !]>
答案 4 :(得分:0)
使用此Python脚本清理大型文件的回购(我在我的回购中使用它并且效果很好)https://gist.github.com/1433794
答案 5 :(得分:0)
我试了几个上面的答案但没有运气。但最终我找到了使用Github Desktop的解决方案。单击“存储库”,“撤消最近提交”。它允许我做两次,足以删除违规提交。 (我已经从存储库中删除了大文件。)