跳到主要内容

关于GitHub上的大文件

GitHub限制了您可以在常规Git存储库中跟踪的文件的大小。了解如何跟踪或删除超出限制的文件。

关于GitHub的大小限制

GitHub试图为所有Git存储库提供充足的存储,尽管文件和存储库大小有严格限制。为了确保用户的性能和可靠性,我们积极监控整个存储库运行状况的信号。存储库健康状况是各种交互因素的函数,包括大小、提交频率、内容和结构。

文件大小限制

GitHub限制存储库中允许的文件大小。如果您试图添加或更新大于50 MiB的文件,您将收到Git的警告。这些更改仍将成功地推送到您的存储库中,但您可以考虑删除提交以将性能影响降至最低。有关详细信息,请参阅“从存储库历史记录中删除文件."

注:如果通过浏览器将文件添加到存储库中,则文件大小不能超过25 MiB。有关详细信息,请参阅“将文件添加到存储库."

GitHub阻止大于100 MiB的文件。

要跟踪超出此限制的文件,必须使用Git大文件存储(Git LFS)。有关详细信息,请参阅“关于Git大文件存储."

如果需要在存储库中分发大型文件,可以在GitHub.com上创建版本,而不是跟踪文件。有关详细信息,请参阅“分发大型二进制文件."

Git不是为处理大型SQL文件而设计的。要与其他开发人员共享大型数据库,我们建议使用文件共享服务。

存储库大小限制

我们建议存储库保持较小,理想情况下小于1 GB,强烈建议小于5 GB。较小的存储库克隆速度更快,使用和维护更容易。如果您的存储库过度影响我们的基础架构,您可能会收到GitHub支持部门的电子邮件,要求您采取纠正措施。我们努力保持灵活性,尤其是对于有许多合作者的大型项目,我们将尽可能与您合作,以找到解决方案。通过有效管理存储库的大小和总体运行状况,您可以防止存储库影响我们的基础架构。您可以在中找到用于存储库分析的建议和工具github/git尺寸存储库。

外部依赖性可能会导致Git存储库变得非常大。为了避免使用外部依赖性填充存储库,我们建议您使用包管理器。常见语言的流行包管理器包括捆扎机,节点的包管理器、和马文这些包管理器支持直接使用Git存储库,因此您不需要预先打包的源。

Git不是作为备份工具设计的。然而,有许多专门为执行备份而设计的解决方案,例如Arq公司,碳酸盐岩、和碰撞计划.

从存储库的历史记录中删除文件

警告:这些过程将从您计算机和GitHub.com上的存储库中永久删除文件。如果文件很重要,请在存储库外部的目录中制作本地备份副本。

删除最近未推送提交中添加的文件

如果文件是与您最近的提交一起添加的,并且您还没有推送到GitHub.com,那么您可以删除该文件并修改提交:

  1. 正常开放终点站终点站Git猛击.

  2. 将当前工作目录更改为本地存储库。

  3. 要删除文件,请输入git-rm—缓存:

    $吉特rm(毫米)--缓存的GIANT_FILE
    #准备我们的大文件对于删除,但保留在磁盘上
    
  4. 使用提交此更改--修订-CHEAD:

    $git提交--修改-CHEAD
    #用您的更改修改之前的承诺
    #只需做出新的承诺即可获胜不起作用,因为你需要
    #从未按下的历史记录中删除文件
    
  5. 将您的承诺推送到GitHub.com:

    $git推送
    #推动我们重新编写的较小提交
    

删除在早期提交中添加的文件

如果您在早期提交中添加了文件,则需要将其从存储库的历史记录中删除。要从存储库的历史记录中删除文件,可以使用BFG Repo-Cleaner或git过滤器-repo命令。有关更多信息,请参阅“从存储库中删除敏感数据."

分发大型二进制文件

如果您需要在存储库中分发大型文件,可以在GitHub.com上创建发行版。发行版允许您打包软件、发行说明和二进制文件的链接,供其他人使用。有关详细信息,请访问“关于版本."

我们不限制发行版中二进制文件的总大小或用于交付它们的带宽。但是,每个文件必须小于2 GiB。