我遇到了这个问题,我的存储库在 Bitbucket 中达到了 2GB 的大小限制。在给定时间,我在存储库中有几个分支,每个分支大约 ~260MB(由于我在存储库中保留了一些图像,以便于与团队共享(。鉴于此文件大小,对于 2 个分支下的任何内容,我应该远低于 8GB 的限制。但是,我经常收到警告,有时由于达到限制而锁定,并且不得不删除一些分支。
我注意到根目录或项目中的隐藏.git
目录非常大(~3GB(。如何在远程中处理此目录?显然,它没有上传。是否在遥控器中重新创建?这可能就是遥控器中的存储库大小如此之大的原因吗?
我尝试运行git gc
将.git
目录的大小减小到大约 2.3GB,但这并没有解决问题,因为 (1( 这还不够,(2( 它是我的机器本地的。有没有办法在遥控器中git gc
?
-
要回答您的最后一个具体问题,看起来您可以要求 Bitbucket 支持为您执行 GC:https://confluence.atlassian.com/bitbucket/reduce-repository-size-321848262.html 但是,仅在解决基础问题、清理存储库并只需要最后一步时才这样做可能是有意义的。
-
分支数量本身与存储库大小无关。分支只是 Git 中的指针,每个分支开销正好是 41 个字节。https://git-scm.com/book/en/v1/Git-Branching-What-a-Branch-Is 重要的是您的历史记录中有多少大型二进制文件的修订。
从 实际的角度来看,您似乎必须从存储库和/或存储库历史记录中删除大型二进制文件。这里有一个很好的选项概述:https://help.github.com/en/articles/removing-sensitive-data-from-a-repository。当然,首先完全备份存储库很重要,并仔细查看历史记录重写的所有含义。完成此操作后,您可以重新评估您的选项(git-lfs,另一个 git 托管,不要在存储库中保留大型二进制文件(。