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

如何覆盖Bitbucket远程仓库的.git文件夹?本地清理后推送无效

解决Bitbucket远程仓库体积过大的问题

问题根源

本地清理历史大文件后,远程仓库的旧提交对象并没有被自动移除——Git推送只会更新分支指针,不会主动清理远程端的废弃对象,所以克隆下来还是原来的大小。

操作步骤

1. 确认本地清理彻底

确保你已经用可靠的工具(比如git filter-repo,比旧的filter-branch更稳定)完成了历史大文件清理,本地仓库体积确实维持在3.6GB,所有分支、标签的历史都已修正。

2. 强制推送所有分支和标签

重新执行强制推送,确保清理后的分支和标签覆盖远程:

git push origin --force --all
git push origin --force --tags

3. 触发Bitbucket的垃圾回收

Bitbucket不会自动清理废弃对象,必须手动触发:

  • 登录Bitbucket,进入目标仓库的设置页面
  • 找到仓库详情(Repository details)选项
  • 点击页面中的垃圾回收(Garbage collect)按钮,等待平台完成清理

4. 验证效果

清理完成后,重新克隆仓库,检查体积是否已经降到和本地一致的3.6GB左右。

重要提醒

  • 不要尝试直接覆盖远程的.git文件夹,Git远程仓库由Bitbucket托管,不允许直接修改结构,必须通过Git命令和平台工具完成清理。
  • 如果之前用的不是git filter-repo,建议用它重新清理本地:它能彻底移除历史中所有大文件的痕迹,包括commit、标签、引用里的相关记录,比手动gc效果好得多。
  • 通知团队成员:仓库历史已被重写,所有人必须重新克隆仓库,禁止继续使用旧的本地副本,避免把旧的大对象重新推回远程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:48:30