【问题标题】:Undo 'dvc add' operation撤消“dvc 添加”操作
【发布时间】:2021-08-24 03:36:41
【问题描述】:

dvc add-ed 了一个我不想添加的文件。我还没有承诺。

如何撤消此操作?在 Git 中,您可以使用 git rm --cached <filename>

明确一点:我想让 DVC 忘记该文件,并且我希望该文件在我的工作树中保持不变。这与dvc remove 的做法相反。

DVC 问题跟踪器上的一个issue 建议dvc unprotect 是正确的命令。但阅读manual page 则不然。

DVC 可以做到这一点吗?

【问题讨论】:

    标签: dvc


    【解决方案1】:

    根据 DVC Discord 服务器上的 mroutis:

    1. dvc unprotect文件;如果您不使用 symlinkhardlink 缓存,则没有必要这样做,但不会有什么坏处。
    2. 删除 .dvc 文件
    3. 如果您需要删除缓存条目本身,请运行dvc gc,或在data.dvc 中查找MD5 并手动将其从.dvc/cache 中删除。

    编辑 -- 现在他们的 Github 页面上有一个问题,需要将其添加到手册中:https://github.com/iterative/dvc.org/issues/625

    【讨论】:

    • 是的。基本上rm -f <filename>; dvc gc
    • @JorgeOrpinel 的目标是在使用 DVC“取消跟踪”原始文件的同时保持原始文件的完整性。
    • 我的错,我的意思是rm -f <filename.dvc>; dvc gc
    • 另外,rm -f <filename.dvc> 不会从.gitignore 中删除文件,所以 Git 仍然会认为该文件不存在。如果您没有对其进行任何其他更改,那么您可能还想git restore .gitignore
    • @IBBoard 好点。它也可能不在顶级 gitignore 中,因此最好为它grep -R '<filename>' **/.gitignore 并相应地更改这些文件。
    【解决方案2】:

    dvc remove 似乎可以为未提交的文件执行所需的操作 - 至少对于不在管道中的文件。关键(我从错误或文档中不清楚)是传递….dvc 文件名,否则它会尝试从dvc.yaml 中查找并删除它作为一个部分。

    # Precondition: DVC is configured for the repo. No dvc.yaml file (untested with it)
    $ touch so-57966851.txt
    $ dvc add so-57966851.txt
    WARNING: 'so-57966851.txt' is empty.                                                                                                                          
    100% Adding...|████████████████████████████████████████|1/1 [00:00, 49.98file/s]
                                                                                                                                                                  
    To track the changes with git, run:
    
        git add .gitignore so-57966851.txt.dvc
    # Ooops! I did the wrong thing! I didn't mean to add that…
    $ dvc remove so-57966851.txt.dvc
    $ ll so-*.txt
    -rw-r--r-- 1 ibboard users 0 Aug 23 20:27 so-57966851.txt
    

    (使用 v2.5.4 测试)

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多