[英]Removing unwanted folders from git repo permanently - Repo size not changing
[英]Deleting folders from git history to reduce repo size
我正在尝试解决托管在 Bitbucket 上的存储库上的存储库大小限制问题,我已达到 2GB 存储库大小并且无法再将新提交推送到其中。
在某个时间点,由于其中文件的性质(此存储库所针对的 Unity 项目需要许多纹理和声音文件),此存储库变得非常大,当时我们的解决方案是创建一个子模块,用于放置所有资产,同时将核心项目保留在主存储库中。
这工作了一段时间,但现在我再次达到了主存储库的限制,并深入研究(感谢此答案中提供的脚本: 如何找出哪些文件占用了 git 存储库中最多的空间? ),我发现这样做的原因是我们移动到子模块的所有文件在主存储库中的历史记录仍然完好无损。
然后我发现了 BFG ( https://rtyley.github.io/bfg-repo-cleaner/ ),我可以用它来重写我的 repo 的历史记录并使用bfg --delete-folders
删除其中的大条目bfg --delete-folders
,然后按照 The BFG 页面的 Usage 部分中的说明运行git gc
。
之后运行git count-objects -v
似乎表明这已经奏效,我的 repo 从 1.9gb 大小包下降到 300mb 以下。 并且运行上面链接的脚本以找到 repo 中最重的条目,不再找到任何移动到子模块的问题文件。
我的问题是,尽管如此,当我尝试将清理过的 repo 推回 Bitbucket 时,它失败了,同样声称 repo 已超过 2GB 大小限制并且无法再接受任何推送。 如果它不能接受应该清理它的推送,那么我究竟应该怎么做呢? 任何想法我错过了什么?
谢谢
您可能会删除 github 上的所有分支,然后推送新分支……或者您可能会在 github 上删除整个 repo,从头开始重新创建并推送新分支。
Bitbucket 的大小限制方法似乎是在存储库超过限制时锁定所有更改。 “所有变化”就是这个意思。 您不仅不能添加到存储库,也不能用较小的存储库替换存储库。
这是一个 Bitbucket 特性,与 Git 无关。 您必须联系 Bitbucket 支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.