You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bitbucket远程仓库触发垃圾回收(GC)

解决Bitbucket远程仓库体积过大的问题
  • 先彻底清理本地仓库再触发远程GC
    普通git gc可能不够彻底,试试执行git gc --aggressive --prune=now,这个命令会深度清理所有过期的Git对象。之后推送一个空提交触发远程仓库的GC检查:

    git commit --allow-empty -m "Trigger remote GC"
    git push
    

    如果有仓库管理员权限,直接去Bitbucket仓库设置的「Advanced」选项里,找到「Start repository cleanup」按钮手动触发远程垃圾回收,这比空提交更直接。

  • 清理远程仓库的废弃分支和标签
    远程仓库里堆了一堆废弃分支、旧标签是常见的体积膨胀原因:

    1. 用git branch -a列出所有本地和远程分支,找出已经没用的废弃分支(比如已合并的feature分支、旧测试分支)。
    2. 删除远程分支:git push origin --delete <废弃分支名>。
    3. 用git tag列出所有标签,删除远程废弃标签:git push origin :<废弃标签名>。
  • 彻底移除历史中的大文件
    如果之前提交过大型文件(比如安装包、视频、压缩包),哪怕后来删了,历史记录里的这些文件还会占远程空间:

    1. 找出仓库里体积最大的10个对象对应的文件:
      git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print $1}')"
      
    2. 用git filter-repo工具彻底移除这些大文件的所有历史(别用已弃用的git filter-branch):
      git filter-repo --path <大文件路径> --invert-paths
      
    3. 强制推送到远程(注意:这会重写仓库历史,必须通知所有协作的同事重新克隆仓库,避免冲突):
      git push --force --all
      git push --force --tags
      
  • 检查Git LFS存储(如果用了)
    要是用了LFS存大文件,旧的LFS对象可能没被清理:

    1. 用git lfs ls-files列出所有LFS文件。
    2. 清理本地LFS缓存:git lfs prune。
    3. 重新推送清理后的LFS对象:git lfs push --all origin,同时去Bitbucket的LFS设置里看看有没有可清理的旧对象。

内容的提问来源于stack exchange,提问作者ujko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:42:40