gpt4 book ai didi

git - 几次本地提交后 "dvc push"

转载 作者:太空狗 更新时间:2023-10-29 14:28:47 24 4
gpt4 key购买 nike

我在一个使用 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 中推送数据。有什么方法可以从所有本地提交中推送数据(即从远程分支的第一个提交开始)?

目前我看到两个选项:

  1. 标记每个提交并使用 dvc push -T 推送它
  2. 在“实验 3”提交后,对所有尚未推送到远程的本地提交执行 git checkout commit-hash && dvc push

这两个选项看起来都很麻烦且容易出错。有没有更好的方法呢?

最佳答案

为了减少出错的可能性,您可以使用 HEAD~1 来引用之前的提交,而不是使用确切的提交哈希。

如果您使用的是 Bash,则可以使用 for 循环迭代最后 3 次提交并dvc push内容。

for x in {1..3}; do git checkout HEAD~1 && dvc push; done

记得 git checkout 回到你的工作分支(即 git checkout master)


回答您的评论("dvc push" after several local commits):

Is there a way to disable hooks after dvc install command?

当您运行 dvc install 时,它会在 .git/hooks 目录下创建三个文件:

.git/hooks
├── post-checkout
├── pre-commit
└── pre-push

要禁用它们,您可以删除这些文件(即 rm .git/hooks/post-checkout)。

顺便说一下,我编辑了 DVC 的文档以包含更多关于此的信息

关于git - 几次本地提交后 "dvc push",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56818930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com