我已经向Gerrit服务器提交了一系列补丁以供审核,并且它们都是按顺序在同一个项目中进行的。 现在其他人已将更新推送到序列中的第一个补丁之一,我想将其从gerrit中拉下来进行测试。 这样做的正确步骤是什么? 我知道我可以git reset - 硬回到补丁之前,然后樱桃挑选或回购逐个下载每个补丁。由于它只是一个真正改变的补丁,我发现有点矫枉过正。 有没有更好的方法呢?
答案 0 :(得分:0)
查找有人在您的历史记录中进行更新的提交的提交哈希值,并结帐到该哈希值,例如
$ git checkout 1358ffb # use your own hash here
然后在那里创建一个分支并结帐到它
$ git checkout -b new_branch
由于有人用另一个覆盖了您的提交,我们需要替换它。重置为提交的父级。
$ git reset --hard HEAD^
现在你可以选择更新提交'来自格里特这里。请注意,此命令只是一个示例,您需要使用自己的详细信息和网址等。基本上只需从gerrit Web UI复制粘贴樱桃选择网址。
$ git fetch ssh://kimusan@example.com:29418/project-name refs/changes/04/104/1 && git cherry-pick FETCH_HEAD
现在我们需要将其他提交重新绑定到此。 Checkout master(或树顶部的任何东西)并将其重新绑定到new_branch
$ git checkout master
$ git rebase new_branch
Git现在将您刚刚更新后的所有提交放回到它之上。如果需要,您可以立即删除new_branch
$ git branch -d new_branch