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

git lfs prune未清理全部LFS对象,如何保留指定文件并清理其余?

Git LFS 存储空间异常及清理方案

为什么.git/lfs/占用176MB但仅23MB对象可被清理?

  • git lfs prune只会清理仓库所有分支、标签、提交历史中不再引用的LFS对象。你的dry-run结果显示仅23MB对象符合清理条件,说明剩余153MB的对象仍被当前仓库的某个分支、旧提交或标签所引用。
  • .git/lfs/目录还包含少量索引和缓存文件,但这部分占比极低,主要占用来自仍被引用的LFS对象。

如何保留指定23MB对象并清理其他LFS对象?

步骤1:定位并标记需要保留的对象

  • 列出所有被引用的LFS对象及大小,找到目标23MB文件:
    git lfs ls-files --size
    
  • 标记该文件对应的LFS对象为保留状态:
    git lfs track --keep <目标文件的相对路径>
    
    如果你知道对象ID,也可以直接指定ID保留:
    git lfs store --keep <LFS对象ID>
    

步骤2:执行清理

运行强制清理命令,移除所有未被标记保留且无仓库引用的LFS对象:

git lfs prune --force

步骤3:清理隐藏的引用源

如果清理后空间仍未释放,检查是否存在未处理的分支引用:

  • 删除本地无用分支:
    git branch -d <无用分支名称>
    
  • 清理远程已删除分支的本地引用:
    git fetch --prune
    
  • 重新执行清理:
    git lfs prune --force
    

步骤4:手动清理(谨慎操作)

若仍有无法自动清理的冗余对象,可手动删除:

  1. 找到.git/lfs/objects目录下的对应对象(对象ID前两位为一级文件夹名,接下来两位为二级文件夹名,剩余部分为文件名)
  2. 删除冗余对象文件后,修复LFS索引:
    git lfs fsck
    

内容的提问来源于stack exchange,提问作者Sourav Kannantha B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:27:40