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

GitHub Git LFS历史清理后配额未降,如何彻底移除旧对象?

GitHub Git LFS配额未随仓库历史清理下降的解决方法

清理仓库Git历史中的Git LFS大文件后,本地仓库大小已降至70MB,但GitHub端的Git LFS存储配额仍显示1.35GB(与已清除的大文件大小一致),即使.gitattributes中已无相关记录,配额也未更新。

核心原因

GitHub的Git LFS对象是独立于Git仓库历史存储的,不会因为Git提交历史被清理而自动删除。只有当LFS对象在30天内未被任何分支、标签或提交引用时,GitHub才会自动清理;若需要立即释放配额,需手动删除未被引用的LFS对象。

补充操作步骤

1. 确认本地无残留LFS对象引用

先确保本地仓库已彻底清除所有对目标LFS文件的引用:

# 列出本地所有LFS对象(包括历史中的)
git lfs ls-files --all
# 检查历史中是否还有目标文件的记录
git log --all --grep="目标文件名"

2. 手动删除GitHub端未被引用的LFS对象

单对象删除(使用GitHub CLI)

先获取目标LFS对象的OID(可通过git lfs ls-files --all查看),然后执行:

gh api -X DELETE repos/{组织/用户名}/{仓库名}/git/lfs/objects/{OID}

替换{组织/用户名}、{仓库名}和{OID}为实际值。

批量删除(可选)

如果需要批量删除所有未被引用的LFS对象,可先获取所有未被引用的OID列表,再循环删除:

# 获取所有未被引用的LFS对象OID(需GitHub CLI和jq工具)
gh api repos/{组织/用户名}/{仓库名}/git/lfs/objects/unreferenced | jq -r '.[] | .oid' | while read oid; do
  gh api -X DELETE repos/{组织/用户名}/{仓库名}/git/lfs/objects/$oid
done

注意:该操作不可逆,执行前务必确认所有对象均已无引用。

3. 等待配额更新

删除操作完成后,GitHub的存储配额可能需要1-24小时才能更新,无需手动刷新页面等待。

额外注意事项

  • 强制推送清理后的仓库历史后,需通知所有协作者重新克隆仓库,避免旧的本地历史再次推送导致LFS对象被重新引用。
  • 操作GitHub API或CLI需要仓库的管理员权限,若为组织仓库,需确保账号拥有对应权限。
  • GitHub自动清理未被引用的LFS对象有30天冷却期,若对象仍在冷却期内,必须手动删除才能立即释放配额。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 16:12:35