首页/开发/Git 与协作速查/git lfs prune 清理本地缓存
进阶与大仓实践69 条

git lfs prune 清理本地缓存

删除工作区当前不需要的历史 LFS 对象,回收 .git/lfs 空间;用 --dry-run 先看将删除的清单,再决定执行。

Git 与协作速查开发更新于 2026-10-13

lfs prune 是什么

git lfs prune 删除工作区当前不需要的历史 LFS 对象,回收 .git/lfs 占用的空间。默认保留近期对象与当前检出所需的全部对象;--dry-run 先看将删除的清单,--verify-remote 联网确认对象在远端确实存在后再删。清理本地缓存前多做一步验证更稳妥。

基本信息

用途清理本地 LFS 对象缓存
语法git lfs prune [--dry-run] [--verify-remote]
保留策略默认保留近期对象与当前检出所需对象
验证--dry-run 列清单;--verify-remote 联网校验远端存在
不影响远端存储不变,之后可重新 fetch

典型使用场景

  • 磁盘吃紧:LFS 缓存占大量空间时先清理
  • CI 缓存维护:缓存目录过大时定期 prune
  • 排查缓存异常:怀疑缓存损坏或缺对象时先看清单
  • 迁移收尾:确认远端完整后清理旧版本对象
  • 多工作区协作:共享对象库时确认其他工作区不再依赖将被删的对象
  • 例行巡检:把 prune --dry-run 加进巡检脚本,磁盘告警前提前发现缓存膨胀

常用示例

常用示例
git lfs prune --dry-run          # 列出将要删除的对象,不执行
git lfs prune                    # 执行清理
git lfs env | grep -i local      # 查看本地缓存目录位置
git lfs fetch --recent           # 按需重新取回近期对象

选项对照

选项行为适用
--dry-run只列清单不删除执行前核对
--verify-remote删除前联网确认远端存在网络可用、要求更稳
默认按保留策略清理日常维护
prune 只影响本地缓存,远端存储不变;需要重新取回时再次 fetch 即可。
离线环境跑 --verify-remote 会因联网失败中止,可改用 --dry-run 核对后直接 prune。
频繁切分支时检出对象集合变化大:把保留窗口设宽一些更稳,避免刚清理又要重新下载。
被清理的对象并非消失:需要时 checkout 或 fetch 会自动按需重新下载,排查缺对象问题时可先完整跑一次 fetch 再判断。

易错点

  • 误删后重新拉取成本:大对象重新下载耗时耗流量,执行前先跑 dry-run 确认清单
  • --verify-remote 依赖网络:离线或受限环境会失败,按场景选择验证方式
  • 保留策略误判:近期窗口内对象会被保留,期待更激进清理时要先理解策略影响
  • 把 prune 当仓库瘦身:克隆体积由历史决定,本地 prune 不改变远端与克隆大小
  • 清理频率要平衡:太勤会反复下载对象浪费带宽,太懒则磁盘持续膨胀,一般跟随磁盘监控定期执行

数据来源与参考

  • Git LFS 官方文档:git-lfs prune(--dry-run/--verify-remote)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌