如何通过DVC清理本地已检出文件,仅保留存根与*.dvc文件?
DVC 本地受控数据清理方案
核心命令:dvc gc
这是DVC官方专门用来清理本地缓存和工作区已检出数据的工具,完全能替代你手动写的复杂脚本,精准满足只保留.dvc文件、释放磁盘空间的需求。
常用参数组合
清理工作区所有已检出的远程受控文件(含历史分支、标签、提交关联的数据):
dvc gc --workspace --all-branches --all-tags --all-commits参数说明:
--workspace:针对当前工作区操作,把已检出的实际大文件替换回DVC存根,只保留.dvc文件--all-branches/--all-tags/--all-commits:覆盖所有历史版本关联的本地数据,避免遗漏
若只需清理当前工作区最新版本的数据,不用处理历史分支/标签,用简化版:
dvc gc --workspace
关键注意事项
- 执行前务必确认:这些大文件已经通过
dvc push推送到远程存储,否则清理后本地无备份、远程也找不到数据 - 该命令不会删除
.dvc文件,仅移除实际大文件,替换为轻量级存根,完全不影响版本追踪,后续需要用时直接dvc pull就能重新拉取 - 无需额外压缩存根,因为DVC存根本身体积极小,且你的文件已压缩,额外压缩没有意义
验证清理结果
清理完成后,用以下命令确认状态:
dvc status
如果输出Data and pipelines are up to date,说明清理成功,工作区仅保留.dvc文件和存根,实际大文件已被移除。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

