Bitbucket git 存储库的大小限制为 2GB,现在我有一个存储库(我们称之为 bigsize 存储库),由于存在大量二进制文件(扩展名为 dll
和 msm
的文件)。它如此接近限制,我担心涉及二进制文件的提交操作会使大小超过 2GB,因此提交将失败并且无法继续。
现在,如何最好地减少 bigsize 仓库的大小?
我正在考虑使用 LFS feature ,但是,LFS 空间有 1GB 限制,我担心这不足以使用此存储库(因为存储库大小的大部分来 self 想要存储在 LFS 中的二进制文件)。
所以我正在考虑从存储库和历史记录中删除所有二进制文件(我不介意从源代码管理中丢失它们,因为我将它们放在本地驱动器上),考虑到如何最好地做到这一点我的 bigsize 存储库的当前大小?
我的攻击计划:
- 确保对于大型存储库上的所有分支(是的,我在这个巨大的存储库上有多个分支),我已删除所有二进制文件(通过提交 specifies
*.dll
in gitignore and usegit rm -rf -cached
command 的提交)。这是必需的,因为“By default the BFG doesn't modify the contents of your latest commit on your master (or 'HEAD') branch, even though it will clean all the commits before it.” - 然后使用 BFG delete-files command “重写历史”,从而减少存储库的大小。
该方法适用于非常接近 2GB 的存储库吗?我担心在第 1 步,当我使用 git rm 时,它会添加到历史记录中并将存储库大小推至超过 2GB,从而失败。
重要细节:
- 我是该存储库的唯一作者
- 现在我有多个活跃分支。纵观历史,有多个分支 merge 到主分支
- 我不使用存储库进行讨论或代码审查,甚至不使用标签。我只是将它用作单个分支,偶尔进行分支和 merge
最佳答案
对于 Git 2.22 或更高版本,请使用 git filter-repo
:
git filter-repo --path your/big/file --invert-paths
或者:
git filter-repo --strip-blobs-bigger-than 10M
关于git - 当存储库已经非常接近 2GB 时,如何从所有 bitbucket git 历史记录中删除二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62186378/