1. 安装
pip install dvc
2. 初始化
mkdir dvc_example
cd dvc_example
git init
dvc init
3. 添加数据
cp -r coco/test2017 dvc_example
cp -r coco/val2017 dvc_example
dvc add test2017 val2017
git add *
git commit -m "dataset init"
4. 修改数据
4.1 删除文件夹下部分文件
rm -rf test2017/000000000001.jpg
dvc add test2017
git add *
git commit -m "rm test2017/000000000001.jpg"
4.2 删除整个文件夹(要连带删除文件夹名.dvc)
rm -rf test2017 test2017.dvc
git add *
git commit -m "rm test2017"
5. 回退版本
git logcommit 3688d03792dedac774a0e540de9a7e21f0f641e2 (HEAD)
Author: nickccnie <nickccnie@tencent.com>
Date: Sun Mar 20 17:24:37 2022 +0800rm test2017/000000000001.jpgcommit 6b1a62d09fc45ac9d2125487095815c79ba38c1d (master)
Author: nickccnie <nickccnie@tencent.com>
Date: Sun Mar 20 17:13:32 2022 +0800dataset initgit checkout 6b1a62d09fc45ac9d2125487095815c79ba38c1d
dvc checkout
6. 大致原理
DVC 是一个用 Python 编写的命令行工具。它模仿 Git 命令和工作流程,并且与 Git 协作使用。事实上,gitanddvc命令经常一个接一个地串联使用。DVC和Git各有分工,DVC进行对大文件的版本控制,Git进行对小文件的版本控制。
- 使用dvc add test2017后,会给文件夹test2017创建一个test2017.dvc文件。文件.dvc是指向实际数据集大文件的小文本文件;
- git add test2017.dvc 就可以通过实现对.dvc小文件的控制间接实现对数据集大文件test2017的版本控制;
7. 参考
- Get Started: Data Versioning
- 使用 Python 和 DVC 进行数据版本控制