数据状态
显示在 工作区 中被 DVC 跟踪的文件和目录的变更。
有关 数据管道 的状态,请参见 dvc status。
概要
usage: dvc data status [-h] [-q | -v]
[--granular] [--unchanged]
[--untracked-files [{no,all}]]
[--json]
[--not-in-remote] [-r <name>] [--no-remote-refresh]描述
data status 命令显示 工作区 的状态,以及相对于最新 Git 提交(HEAD)的变更。它会告诉你哪些新变更已提交到 DVC,哪些尚未提交,哪些文件未被 DVC 和 Git 跟踪,以及哪些文件缺失于 缓存 中。
data status 可作为 git status 的补充工具。两者结合使用时,可展示仓库中所有路径的状态。
dvc data status 命令仅输出信息,不会修改或更改你的 工作区 中的任何内容。在执行 dvc commit 或 git commit 之前检查仓库状态是一种良好实践,以避免意外提交不打算提交的内容。
示例输出可能如下所示:
$ dvc data status
Not in cache:
(use "dvc fetch <file>..." to download files)
data/data.xml
DVC committed changes:
(git commit the corresponding dvc files to update the repo)
modified: data/features/
DVC uncommitted changes:
(use "dvc commit <file>..." to track changes)
(use "dvc checkout <file>..." to discard changes)
deleted: model.pkl
(there are other changes not tracked by dvc, use "git status" to see)dvc data status 显示多个类别的变更:
-
不在缓存中 表示
.dvc或dvc.lock文件中存在文件哈希,但对应的 缓存 文件缺失。这可能发生在克隆 DVC 仓库后、使用dvc pull(或dvc fetch)下载数据之前;或在使用dvc gc之后。 -
不在远程中 表示
.dvc或dvc.lock文件中存在文件哈希,但对应的 远程 文件缺失。这可能发生在向 DVC 添加新文件后、使用dvc push上传数据之前;或在使用dvc gc -c之后。 -
DVC 已提交变更 是指已 提交到 DVC 的新、修改、删除或重命名的受跟踪文件或目录。这些变更可能已准备好提交至 Git。
-
DVC 未提交变更 是指尚未 提交到 DVC 的新、修改、删除或重命名的受跟踪文件或目录。你可以使用
dvc add或dvc commit来处理这些变更。 -
未跟踪文件 未被添加到 DVC(或 Git)中。仅在使用
--untracked-files标志时显示。 -
未变更文件 无任何修改。仅在使用
--unchanged标志时显示。
默认情况下,不会显示受跟踪目录内单个文件的变更,但可通过 --granular 标志启用。
选项
-
--granular- 显示 DVC 跟踪目录内的细粒度文件级变更。注意,部分细粒度变更可能被报告为unknown,因为 DVC 跟踪的是 目录级哈希值。 -
--untracked-files- 显示未被 DVC 和 Git 跟踪的文件。 -
--unchanged- 显示未变更的 DVC 跟踪文件。 -
--not-in-remote- 显示缺失于 远程 的文件。 -
-r <name>,--remote <name>- 用于检查远程中缺失文件的dvc remote名称(仅在使用--not-in-remote时有效)。 -
--no-remote-refresh- 使用缓存的 remote 索引(不检查远程)。仅在与--not-in-remote一起使用时生效。 -
--json- 以易于解析的 JSON 格式输出命令结果,而非人类可读的格式。 -
-h,--help- 打印使用说明/帮助信息,然后退出。 -
-q,--quiet- 不向标准输出写入任何内容。 -
-v,--verbose- 显示详细的跟踪信息。
示例
$ dvc data status
Not in cache:
(use "dvc fetch <file>..." to download files)
data/data.xml
DVC committed changes:
(git commit the corresponding dvc files to update the repo)
modified: data/features/
DVC uncommitted changes:
(use "dvc commit <file>..." to track changes)
(use "dvc checkout <file>..." to discard changes)
deleted: model.pkl
(there are other changes not tracked by dvc, use "git status" to see)这表明 data/data.xml 缺失于缓存中,目录 data/features/ 存在 DVC 已跟踪但尚未提交到 Git 的更改,文件 model.pkl 已从 workspace 中删除。目录 data/features/ 已被修改,但未提供内部具体变更的详细信息。使用 --granular 选项可提供更多细节。
示例:完整仓库状态(包含 Git)
$ dvc data status
Not in cache:
(use "dvc fetch <file>..." to download files)
data/data.xml
DVC committed changes:
(git commit the corresponding dvc files to update the repo)
modified: data/features/
DVC uncommitted changes:
(use "dvc commit <file>..." to track changes)
(use "dvc checkout <file>..." to discard changes)
deleted: model.pkl
(there are other changes not tracked by dvc, use "git status" to see)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: dvc.lock
no changes added to commit (use "git add" and/or "git commit -a")dvc data status 和 git status 结合使用可显示仓库的完整状态。dvc data status 显示 DVC 数据的变更,而 git status 显示对应的 dvc.lock 或 .dvc 文件的变更(以及 Git 仓库中其他无关变更)。
示例:细粒度输出
在上述示例基础上,使用 --granular 将显示文件级别的变更信息:
$ dvc data status --granular
Not in cache:
(use "dvc fetch <file>..." to download files)
data/data.xml
DVC committed changes:
(git commit the corresponding dvc files to update the repo)
added: data/features/foo
DVC uncommitted changes:
(use "dvc commit <file>..." to track changes)
(use "dvc checkout <file>..." to discard changes)
deleted: model.pkl
(there are other changes not tracked by dvc, use "git status" to see)现在,在 DVC 已提交的变更 中,关于 data/features 的变更提供了更多信息。输出显示,data/features 中新增了一个文件:data/features/foo。
示例:远程状态
$ dvc data status --not-in-remote
Not in cache:
(use "dvc fetch <file>..." to download files)
data/data.xml
Not in remote:
(use "dvc push <file>..." to upload files)
data/data.xml
DVC committed changes:
(git commit the corresponding dvc files to update the repo)
modified: data/features/
DVC uncommitted changes:
(use "dvc commit <file>..." to track changes)
(use "dvc checkout <file>..." to discard changes)
deleted: model.pkl
(there are other changes not tracked by dvc, use "git status" to see)