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

已删除并强制推送的对象仍在其他开发者机器显示的问题

问题原因与解决方法

问题出在其他开发者的本地仓库中仍保留着旧历史的引用痕迹(比如本地分支、标签、stash、reflog记录等),这些引用会让Git判定被删除的大文件Blob仍有存在价值,因此普通的git gc或git prune无法清理它们。

解决步骤:

  • 清理本地旧分支与标签
    • 删除所有基于旧历史的本地分支:git branch -D <旧分支名称>,若不确定哪些分支无效,直接重新克隆仓库是最稳妥的方案
    • 同步远程删除的标签并清理本地标签:git fetch origin --prune --prune-tags,再手动删除残留的本地标签:git tag -d <标签名>
  • 清理stash与reflog
    • 清空所有stash(若旧stash包含大文件):git stash clear
    • 强制过期所有reflog记录:git reflog expire --expire=now --all
  • 彻底清理无用Git对象
    • 执行深度垃圾回收:git gc --prune=now --aggressive
  • 验证结果
    • 再次运行git-filter-repo --analyze确认大文件已被移除

内容的提问来源于stack exchange,提问作者Alex from Jitbit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:05:21