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 再判断。