在 GitHub 上编辑

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.yamldvc.lock 都会被删除。如果 .gitignore 中也没有剩余条目,则该文件也会被删除。

请注意,此命令不会删除阶段的实际输出文件或目录(outs 字段),除非使用了 --outs 选项。

💡 参考 撤销添加数据,了解如何替换由 DVC 跟踪的数据。

选项

  • --outs - 同时移除任何 targets 的输出。

    ⚠️ 此选项可能是不可逆的(例如,如果数据未被缓存)。

  • -h, --help - 打印使用说明/帮助信息,然后退出。

  • -q, --quiet - 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。

  • -v, --verbose - 显示详细的跟踪信息。

示例:移除一个 .dvc 文件

假设我们有 foo.csvbar.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.csvtrain.py)不会被删除。

内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天