Kou*_*ura 8 git version-control bitbucket bfg-repo-cleaner
Bitbucket警告我的Git存储库超过1 GB.实际上,在Repository details页面中它表示它是1.7 GB.太疯狂了.我必须在版本控制中包含大数据文件.我的本地存储库实际上是10 GB,这意味着至少我在.gitignore某种程度上成功地使用了从版本控制中排除大文件.
接下来,我按照https://confluence.atlassian.com/display/BITBUCKET/Reduce+repository+size中的教程,尝试删除未使用的大数据.files.git count-objects -v我的repo顶级文件夹中的命令返回以下内容:
count: 5149
size: 1339824
in-pack: 11352
packs: 2
size-pack: 183607
prune-packable: 0
garbage: 0
size-garbage: 0
Run Code Online (Sandbox Code Playgroud)
大小包183607 KB远小于1.7 GB.我有点困惑.
接下来,我下载了BFG Repo Cleaner https://rtyley.github.io/bfg-repo-cleaner并java -jar bfg-1.12.3.jar --strip-blobs-bigger-than 100M在顶级目录中运行命令,从所有非最新提交中删除大于100 MB的文件.但是,BFG返回以下消息:
Warning : no large blobs matching criteria found in packfiles
- does the repo need to be packed?
Run Code Online (Sandbox Code Playgroud)
重复相同的50M导致相同.
这是否意味着所有大于50 MB的文件都在最新提交中?在Bitbucket的源代码浏览器中,我查看了包含大型数据文件的文件夹,但不包含这些文件(成功忽略).
任何人都可以简要解释一下存储库大小混乱的原因是什么,以及存储库中大文件的存在?
此时,您需要查看服务器上的存储库以确定问题是什么,并且您可能需要与BitBucket技术支持部门联系.但是你的描述听起来像你的存储库中有一些可以清理的垃圾.
考虑一下你是否已将500 MB文件推送到BitBucket存储库.现在您意识到了您的错误,并以某种方式将其从存储库中删除(例如,BFG)并推送更新的ref.您的遥控器上的引用将更新为指向新提交,并且您的存储库似乎不包含大文件(如果您克隆了存储库,则不会获得大文件).
但远程不会消失并删除旧提交或该提交中的旧文件.它只会将其与图表断开连接,并且该大文件将不再"可达".事实上,它将"垃圾"符合"垃圾收集"的条件.这将删除大文件,服务器上的存储库大小将缩小.
无法向服务器请求GC(通过git协议).BitBucket的支持应该能够为您执行此操作:
你需要找我们来触发gc.我想最好的方法是"升级"它,如果它真的很紧急,我们应该能够立即达到它. - Bitbucket支持(2016年12月)
请注意,这假设您实际上在本地拥有完整存储库,请确保执行a fetch --all以确保您本地没有(可访问)历史记录的子集.对于BFG,请确保已使用该--mirror选项克隆存储库.