我使用 DVC(数据版本控制)进行项目。假设我做了很多本地提交。像这样的东西:
# make changes for experiment 1
dvc add my_data_file
git add my_data_file.dvc
git commit -m "Experiment 1"
# make changes for experiment 2
# which change both code and data
dvc add my_data_file
git add my_data_file.dvc
git commit -m "Experiment 2"
# make changes for experiment 3
# which change both code and data
dvc add my_data_file
git add my_data_file.dvc
git commit -m "Experiment 3"
# Finally I'm done
# push changes:
dvc push
git push
但是有一个问题:dvc push
只会从实验 3 中推送数据。有没有办法从所有本地提交中推送数据(即从与远程分支分歧的第一个提交开始)?
目前我看到两个选项:
- 标记每个提交并使用
dvc push -T
- 在“经验 3”提交之后
git checkout commit-hash && dvc push
,对所有尚未推送到远程的本地提交执行。
这两个选项看起来都很麻烦且容易出错。有没有更好的方法呢?