从 git 历史记录中删除文件夹以减少存储库大小
Deleting folders from git history to reduce repo size
我正在尝试解决托管在 Bitbucket 上的存储库的存储库大小限制问题,我已经达到 2GB 存储库大小并且无法再将新提交推送到其中。
在某个时间点,由于其中文件的性质,此存储库变得非常大(许多纹理和声音文件作为此存储库所针对的 Unity 项目的一部分需要),而我们的解决方案位于时间是创建一个子模块来放置所有资产,同时将核心项目保留在主仓库中。
这工作了一段时间,但现在我在主回购上再次达到了限制,并深入研究了它(感谢这个答案中提供的脚本:How to find out which files take up the most space in git repo?),我发现这样做的原因是我们已经移动到子模块的所有文件在主仓库中仍然完好无损。
然后我发现了 BFG (https://rtyley.github.io/bfg-repo-cleaner/),我可以使用它来重写我的回购历史并使用 bfg --delete-folders
删除其中的大条目,然后 运行 git gc
按照 BFG 页面的使用部分中的说明。
运行 git count-objects -v
之后似乎表明这已经奏效,我的回购从 1.9gb 大小包下降到 300mb 以下。
并且 运行 上面链接的脚本找到了 repo 中最重的条目,不再找到任何被移动到子模块的问题文件。
我的问题是,尽管如此,当我尝试将清理后的回购推送回 Bitbucket 时,由于回购超过 2GB 大小限制并且无法再接受任何推送的相同声明,它失败了。
如果它不能接受应该清理它的推送,那么我究竟应该怎么做呢?
知道我遗漏了什么吗?
谢谢
您可以删除 github 上的所有分支,然后推送新分支....或者您可以删除 github 上的整个存储库,从头开始重新创建它并推送新分支。
Bitbucket 的大小限制方法似乎是在超过限制时锁定存储库以防止所有更改。 "All changes" 就是这个意思。您不仅不能添加到存储库,也不能用较小的存储库替换存储库。
这是 Bitbucket 的一项功能,与 Git 无关。您必须联系 Bitbucket 支持。
我正在尝试解决托管在 Bitbucket 上的存储库的存储库大小限制问题,我已经达到 2GB 存储库大小并且无法再将新提交推送到其中。
在某个时间点,由于其中文件的性质,此存储库变得非常大(许多纹理和声音文件作为此存储库所针对的 Unity 项目的一部分需要),而我们的解决方案位于时间是创建一个子模块来放置所有资产,同时将核心项目保留在主仓库中。
这工作了一段时间,但现在我在主回购上再次达到了限制,并深入研究了它(感谢这个答案中提供的脚本:How to find out which files take up the most space in git repo?),我发现这样做的原因是我们已经移动到子模块的所有文件在主仓库中仍然完好无损。
然后我发现了 BFG (https://rtyley.github.io/bfg-repo-cleaner/),我可以使用它来重写我的回购历史并使用 bfg --delete-folders
删除其中的大条目,然后 运行 git gc
按照 BFG 页面的使用部分中的说明。
运行 git count-objects -v
之后似乎表明这已经奏效,我的回购从 1.9gb 大小包下降到 300mb 以下。
并且 运行 上面链接的脚本找到了 repo 中最重的条目,不再找到任何被移动到子模块的问题文件。
我的问题是,尽管如此,当我尝试将清理后的回购推送回 Bitbucket 时,由于回购超过 2GB 大小限制并且无法再接受任何推送的相同声明,它失败了。 如果它不能接受应该清理它的推送,那么我究竟应该怎么做呢? 知道我遗漏了什么吗?
谢谢
您可以删除 github 上的所有分支,然后推送新分支....或者您可以删除 github 上的整个存储库,从头开始重新创建它并推送新分支。
Bitbucket 的大小限制方法似乎是在超过限制时锁定存储库以防止所有更改。 "All changes" 就是这个意思。您不仅不能添加到存储库,也不能用较小的存储库替换存储库。
这是 Bitbucket 的一项功能,与 Git 无关。您必须联系 Bitbucket 支持。