Heroku 将整个提交历史记录的 git 存储库大小限制为 1GB(不是当前文件大小)。您的存储库可能超过 1GB。
https://devcenter.heroku.com/articles/limits#git-repos https://devcenter.heroku.com/articles/limits#git-repos
您至少有两个选择:
- 进行交互式变基以压缩您最近的一些提交。
- 从历史记录中删除 sqlite 数据库,然后重新添加它。https://help.github.com/articles/removing-sensitive-data-from-a-repository/ https://help.github.com/articles/removing-sensitive-data-from-a-repository/
两者最终都会重写历史记录,但应该允许您缩小 git 存储库的大小。
即使你清理了,你的二进制 sqlite 文件中仍然可能有大量的更改,所以我不确定你对数据库采取的任何操作是否会使其变得更好(事实上,通过添加额外的内容会使情况变得更糟)提交和大小)
Heroku 似乎不适用于浅层克隆,并且需要完整的历史记录,因此您可能需要重写您的历史记录。
您的 git 存储库大小超过 1GB。这可能是由于历史记录中所有先前提交的总大小所致(heroku 需要完整克隆才能部署)。拆分和添加新的提交只会继续增加大小。您需要确定肿胀的来源。它可能是持续添加二进制文件,甚至是添加然后删除(通过 git commit)大型二进制文件。
您可以通过运行来检查存储库的大小git count-objects -vH
本地并查看size-pack size
.
您还可以尝试使用脚本来比较提交之间的差异并获取 blob 大小:
- https://stackoverflow.com/a/10847242/2892779 https://stackoverflow.com/a/10847242/2892779
- https://stackoverflow.com/a/1318854/2892779 https://stackoverflow.com/a/1318854/2892779
这里还有一些关于清理存储库的其他选项,不涉及重写历史记录:
- https://stackoverflow.com/a/2116892/2892779 https://stackoverflow.com/a/2116892/2892779
如果您已经在本地修复了存储库,则如果 Heroku 拒绝您的推送,您可能需要强制推送到 Heroku。除此之外,我不认为 Heroku 方面可以做任何事情来解决这个问题:您需要:
- 减少当前提交中 sqlite 文件的文件大小(如果您刚刚添加它们并且它们太大)
- 重写您的历史记录以减少存储库的总体大小
- 使用上述帖子中的技术之一压缩文件
由于 Heroku 不支持 lfs,并且 github 不支持没有 gitlfs (100MB) 的情况下大于特定大小的文件大小,并且 bitbucket 似乎没有列出限制。这很可能是这样一种情况:您将一堆包含数百 MB 二进制文件更改的提交堆叠在一起,导致您超过 1GB 限制。
Bitbucket 还提供了有关如何计算实际存储库大小(不是当前默认分支总文件大小)的更多信息:https://confluence.atlassian.com/bitbucket/what-kind-of-limits-do-you-have-on-repository-file-size-273877699.html https://confluence.atlassian.com/bitbucket/what-kind-of-limits-do-you-have-on-repository-file-size-273877699.html