remove
别名为
dvc rm
。
从 dvc.yaml
中移除阶段,和/或停止跟踪文件或目录(并可选择性地删除它们)。
概要
usage: dvc remove [-h] [-q | -v] [--outs] targets [targets ...]
positional arguments:
targets stages (found in dvc.yaml) or .dvc files to remove.
描述
安全地从 .dvc
文件或 dvc.yaml
中移除阶段。包括删除相应的 .gitignore
条目(基于已移除的 outs
字段)。
dvc remove
不会从 DVC 缓存 或 远程存储 中删除文件。请使用 dvc gc
完成此操作。
该命令接受一个或多个阶段名称(参见 dvc stage add
的 -n
选项)或 .dvc
文件名作为 targets
。
如果在移除后 dvc.yaml
中不再有任何阶段,则 dvc.yaml
和 dvc.lock
都会被删除。如果 .gitignore
中也没有剩余条目,则该文件也会被删除。
请注意,此命令不会删除阶段的实际输出文件或目录(outs
字段),除非使用了 --outs
选项。
💡 参考 撤销添加数据,了解如何替换由 DVC 跟踪的数据。
选项
-
--outs
- 同时移除任何targets
的输出。⚠️ 此选项可能是不可逆的(例如,如果数据未被缓存)。
-
-h
,--help
- 打印使用说明/帮助信息,然后退出。 -
-q
,--quiet
- 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。 -
-v
,--verbose
- 显示详细的跟踪信息。
示例:移除一个 .dvc 文件
假设我们有 foo.csv
和 bar.csv
文件,且已被 DVC 跟踪:
$ ls
bar.csv bar.csv.dvc foo.csv foo.csv.dvc
$ cat .gitignore
/foo.csv
/bar.csv
这将移除 foo.csv.dvc
,并确认其在 .gitignore
中的条目已被清除:
$ dvc remove foo.csv.dvc
$ ls
bar.csv bar.csv.dvc foo.csv
$ cat .gitignore
/bar.csv
相同的流程适用于被跟踪的目录。
示例:移除一个阶段及其输出
假设我们在 dvc.yaml
中有一个 train
阶段,并且工作区中有对应的文件:
train:
cmd: python train.py data.csv
deps:
- data.csv
- train.py
outs:
- model
$ ls
dvc.lock dvc.yaml foo.csv foo.csv.dvc model train.py
对阶段名称使用 dvc remove
将从 dvc.yaml
中移除该条目,并从 .gitignore
中移除其输出条目。使用 --outs
选项时,其输出也将被删除(在此示例中仅为 model
文件):
$ dvc remove train --outs
$ ls
dvc.lock dvc.yaml foo.csv foo.csv.dvc train.py
注意,依赖项(
data.csv
和train.py
)不会被删除。