将更新应用到历史记录中的git修补程序时,正确的工作流是什么

将更新应用到历史记录中的git修补程序时,正确的工作流是什么,git,workflow,gerrit,Git,Workflow,Gerrit,我已经向Gerrit服务器提交了一系列补丁以供审查,它们在时间上都在同一个项目中。 现在,其他人已经将更新推到序列中的第一个补丁之一,我想从gerrit中将其拉下来进行测试。 这样做的正确步骤是什么? 我知道我可以git重置-硬回到补丁之前,然后cherry pick或repo逐个下载每个补丁。因为这只是一个真正改变了的补丁,所以我觉得这有点过分了。 有更好的方法吗 例如,在您的历史记录中查找某人更新的提交的提交哈希,并签出该哈希 $ git checkout 1358ffb # use yo

我已经向Gerrit服务器提交了一系列补丁以供审查,它们在时间上都在同一个项目中。 现在,其他人已经将更新推到序列中的第一个补丁之一,我想从gerrit中将其拉下来进行测试。 这样做的正确步骤是什么? 我知道我可以git重置-硬回到补丁之前,然后cherry pick或repo逐个下载每个补丁。因为这只是一个真正改变了的补丁,所以我觉得这有点过分了。
有更好的方法吗

例如,在您的历史记录中查找某人更新的提交的提交哈希,并签出该哈希

$ git checkout 1358ffb  # use your own hash here
然后在那里创建一个分支并签出到它

$ git checkout -b new_branch
由于有人用另一个覆盖了您的提交,我们需要替换它。重置为提交的父级

$ git reset --hard HEAD^
现在您可以从gerrit这里选择“更新提交”。请注意,此命令只是一个示例,您需要使用自己的详细信息和url等。基本上只需从gerrit web UI复制粘贴cherry pick url即可

$ git fetch ssh://kimusan@example.com:29418/project-name refs/changes/04/104/1 && git cherry-pick FETCH_HEAD
现在,我们需要重新确定其他提交的基础。签出主控或树顶部的任何内容,并将其重新设置到新的_分支上

$ git checkout master
$ git rebase new_branch
Git现在将把您在刚刚更新的提交之后所做的所有提交放回它上面。如果需要,现在可以删除新的分支

$ git branch -d new_branch