GitHub.com的仓库大小限制

274

最近我一直在使用GitHub,我想知道托管在github.com上的文件存储库大小限制是多少?


类似问题 http://webapps.stackexchange.com/questions/45254/file-size-and-storage-limits-on-github#84746 - noscreenname
5个回答

370

已知限制

有多个适用的仓库大小限制。

软限制

根据文档,截至2023年,软限制为5 GB。如果超过此限制,可能会收到来自GitHub支持团队的电子邮件。

我们建议仓库保持较小,最好不超过1 GB,强烈建议不超过5 GB。

如果您收到来自GitHub支持团队对一个或多个公共仓库的限制性电子邮件,请将其作为评论附带到此答案,并附上仓库的链接,包括相关情况。

git push 警告限制

截至2020年,下面摘录的存档文档备份)表明以下内容。合理地认为这仍然适用。显然可以忽略此限制。

如果达到75GB,下次推送更改时,你将在终端中收到Git的警告。

此外,对于每个超过50MB但低于硬限制的文件,你将在终端中收到警告。

硬限制

截至2023年,尽管文档没有明确说明每个存储库的硬限制,但合理推测之前记录的每个存储库的硬限制为100 GB仍然适用,至少在收到GitHub支持部门的任何理论邮件之前都是如此。文档中还提到了每个文件的硬限制为100 MB
引用如下所示: 存储库中的单个文件严格限制为最大100 MB。 截至2020年,摘录自归档文档的内容指出每个存储库的硬限制为100 GB。同样,合理推测这个硬限制仍然适用。
引用如下所示: 存储库的硬大小限制为100GB。 在2018年,文件记录 (存档链接) 推送大小限制为2GB,尽管也适用于大推送的相关考虑因素

我们不允许超过2GB的推送。

文件也可以作为二进制文件在发布中共享。截至2020年,每个这样的文件的文件记录大小限制为2GB。

我们不限制发布中二进制文件的总大小或传输它们所使用的带宽。然而,每个单独的文件必须小于2GB。

检查已使用的大小

每个你直接拥有管理员访问权限的仓库的大小(但不是通过团队获得的)可以在https://github.com/settings/repositories上显示。或者,git-sizer工具可以在本地估算仓库的大小。
绕过文件大小限制
如果压缩可以将某些文件大小降低到限制以下,那么显然可以使用压缩。
大文件可以分割成较小的块。如果适用于您的应用程序,可以使用诸如tarsplit或仅使用split alone这样的工具将大文件分割成较小的部分,例如每个部分90 MB。
尽管Git LFS有单独的配额,但严格建议不要使用它,无论是用于二进制还是文本文件。这是因为GitHub对其免费计划所施加的有限限制。如果您错误地使用了它,可以检查其使用情况并从中删除文件

一个代码仓库中的文件数量没有明确限制。2015年的一篇帖子提到在 GitHub 仓库中有170万个文件。需要注意的是,如果有100万个文件,根据5 GB 的软限制,每个文件的最大平均大小为5 KB,或者根据100 GB 的硬限制,每个文件的最大平均大小为100 KB

提交次数

有用户报告称其仓库被禁用时有2200万次提交repo disabled at 22 million commits

如何编写

要成功地使用git推送大量的字节,很可能首先需要将 http.postBuffer配置为足够大的值,并确保有足够的可用系统内存。

除了使用git之外,以编程方式编写不经常更新的文件的另一种方法是使用v3 RESTv4 GraphQL API,使用个人访问令牌。在这样做时,请确保不超过用户特定的每小时请求限制。与git不同,该API似乎不允许提交增量或差异。

加密

在使用git时,可以对整个存储库某些文件的内容进行加密,但有几个注意事项。

比较

对于Bitbucket,请考虑这个答案。在可行的情况下,我个人会同时推送到GitHub和Bitbucket,提供隐式备份。

截至2022年,GitLab(而不是GitHub)似乎将其每个存储库的免费配额从10GB降低到仅为所有存储库合计5GB!你可以在GitLab 账户中查看已使用的总空间。


2
可以,因为它遵循与.gitignore相同的模式匹配 https://git-scm.com/docs/gitignore#_pattern_format,您可以使用命令行设置它(下面是教程链接),或者将您的模式添加到.gitattributes中; 例如:https://gist.github.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f。 我强烈建议您查看官方网站以及教程,以便开始使用 https://github.com/git-lfs/git-lfs/wiki/Tutorial。 - Jaacko Torus
3
我知道一个达到了限制的代码仓库,它就是opengapps仓库。以下是两篇解释该事件后续发生的文章链接: https://opengapps.org/blog/post/2019/02/17/github-situation/ https://opengapps.org/blog/post/2019/08/23/sourceforge-migration/ - Fawaz Ahmed
3
我在2019年5月收到来自GitHub的一封邮件,提醒我某个大小为5GB的分支(https://github.com/whosonfirst-data/whosonfirst-data/issues/1507),其他的分支和上游也都受到了影响(https://whosonfirst.org/blog/2019/05/09/changes/)。我删除了我的分支,上游则将他们10+ GB的数据分成了更小的部分。 - Hugo
2
您也可以通过 GitHub 发布上传大型二进制文件。虽然每个二进制文件的大小限制为2GB,但没有明确的总限制或带宽限制。据我所知,一些具有非常高带宽使用率的项目收到了警告。https://docs.github.com/en/free-pro-team@latest/github/managing-large-files/distributing-large-binaries - qwr
2
@JaackoTorus,GitHub LFS 的免费限制如此之低(请参见https://docs.github.com/en/free-pro-team@latest/github/managing-large-files/about-storage-and-bandwidth-usage),以至于似乎没有任何意义使用它。或者我错过了什么? - Asclepius
显示剩余11条评论

88

根据GitHub的文档:

GitHub没有设置磁盘配额。我们尽力为所有Git存储库提供丰富的存储空间,但也要有度。保持存储库的小巧可以确保我们的服务器快速,用户下载迅速。

并且

此外,我们对超过100 MB的文件放置了严格的限制。

接下来是我的非官方回答。GitHub可能允许您存储高达100MB的文件,但您还应该警惕不要将二进制或其他类似的blob类型文件进行版本控制。原因是Git无法很好地处理二进制文件,并会导致存储空间的巨大惩罚。因此,如果您发现每个文件都达到了100MB,您应该检查一下您正在处理何种类型的文件。


17

根据2019年版本的此页面https://help.github.com/articles/working-with-large-files/,存储库大小没有限制,但超过1 GB后,他们可能会通过邮件要求你缩小存储库的大小:

我们建议将存储库保持在每个存储库不超过1GB。如果将大文件排除在存储库之外,则很容易保持在此限制范围内。 如果您的存储库超过1GB,则可能会收到来自GitHub支持的礼貌邮件,请求您减小存储库的大小以使其恢复到1GB以下。

此外,如果推送的文件超过50 MB,您将看到警告,并且不接受超过100 MB的文件。


4

文件和代码库大小限制

为了保证用户的良好使用体验,我们建议将代码库保持在每个不超过1GB 的范围内。保持代码库小能够确保我们的服务器运行快速并且下载速度快。如果您的代码库超过1GB,您可能会收到来自GitHub支持团队的电子邮件要求您进行缩减。

代码库的硬性大小限制为100GB。如果达到75GB,则您将在下一次推送更改时从终端中收到Git的警告。此外,对于一个代码库中的单个文件,我们还设置了严格的最大大小限制,为100 MB。

来源:Github -> what-is-my-disk-quota

注意:如果您通过浏览器向代码库添加文件,则该文件的大小不能超过25 MB。有关更多信息,请参见...


0

限制已增加。 每个文件为500Mb。 存储库大小没有限制。 无限制的存储库。 这些限制仅适用于免费帐户。 如果您付款,限制确实会增加。

无论如何,如果GitHub适合您的项目,您不应太在意限制,即使自从微软收购以来,GitHub的真正目的是获取您的源代码。 无论您对此有何看法,他们确实为团队和开源代码提供了有趣的工具。对于那些真正需要安全性的公司来说,在“别人的计算机”上托管文件并不重要。


8
你的来源是什么? - qwr
3
如果免费版本已经无限制,那么限制应该如何增加呢? - HackerDaGreat57

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接