Github文件大小限制已更改为6/18/13。现在不能推

时间:2013-06-29 16:35:17

标签: git github

截至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

同样的错误。

6 个答案:

答案 0 :(得分:26)

您好,您可以通过这种方式轻松解决:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch FILENAME.TAR' --prune-empty --tag-name-filter cat -- --all

link:https://help.github.com/articles/remove-sensitive-data

答案 1 :(得分:24)

正如rlb.usa所述,Github添加了一个文件大小限制,阻止您推送文件> 100MB。您试图在新提交中删除该文件并尝试推送它。这失败了,因为你不只是推动最后一次提交,还有其他三个提交。这三个提交包含cron_log的版本,大小为141MB和126MB。它们会导致你的失败。

要解决此问题,您有两种选择:

  • 运行git rebase -i origin/master,设置每个提交以编辑并删除每个提交git commit --amend的文件。
  • 使用BFG Repo-Cleaner清除所有历史记录。

答案 2 :(得分:5)

根据GitHub的new file size limit(也称:working with large files),仅在数小时前制定,GitHub现在有1GB文件大小存储库的新策略,警告推送文件超过50 MB并完全拒绝文件上载100MB。

  

当您按下大于50 MB的文件时,GitHub会发出警告。我们会拒绝   推送包含大于100 MB的文件。我们这样做了一些   的原因。

你有几个选择,但不是很多:

  • 将您的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的解决方案。单击“存储库”,“撤消最近提交”。它允许我做两次,足以删除违规提交。 (我已经从存储库中删除了大文件。)