git-在仅使用 DVC 管道的存储库中忽略 dvc.lock

git-ignore dvc.lock in repositories where only the DVC pipelines are used

我想在 git 存储库中使用 dvc 的管道功能。数据以其他方式管理,不应由 dvc 进行版本控制。唯一需要的功能是 dvc 在调用 dvc repro 时重现所需的管道步骤。在新系统上检出存储库应该会导致一个 'empty' 存储库,其中存储了 none 个管道步骤。

因此,- 如果我理解正确的话- 无需跟踪存储库中的 dvc.lock 文件。但是,将 dvc.lock 添加到 .gitginore 文件会导致错误消息:

ERROR: 'dvc.lock' is git-ignored.

有什么方法可以禁用 .git 中的 dvc.lock 忽略检查这个用例吗?

这绝对是可能的,因为 DVC 功能彼此松散耦合。您可以通过编写 dvc.yaml 文件来进行流水线操作,但是通过在阶段输出中使用 cache: false 来避免数据 management/versioning(outs field). See also helper dvc stage add -O (big O,别名 --outs-no-cache ).

对于初始数据依赖项也是如此,您可以 dvc add --no-commit 它们 (ref)。

尽管如此,您确实希望在 Git 中跟踪 dvc.lock,以便 DVC 可以确定与每个回购副本或分支中的 Git 提交关联的管道的最新阶段。

您将负责在工作区中放置正确的数据 files/dirs(匹配 .dvc 文件和 dvc.lock),以便 dvc reprodvc exp run 表现得像预期的。 dvc checkout帮不了你。