在使用 Gerrit (CodeReview)时,我经常需要获得一个给定补丁集的副本,以便进行测试或验证。最明显和最简单的方法是通过 Gerrit Web 界面下载归档文件或补丁文件,然后手动将其应用到我的本地源代码。
虽然上面的步骤非常简单并且满足了我的需要,但是在最好的情况下,我希望补丁集在我的本地 Git 中以提交的形式出现。
我环顾四周,没有找到解决办法。我发现一些稀疏的信息,一旦汇编在一起给出了以下解决方案。
假设你想把 Gerrit change 1222的补丁集2拉出来:
找到我们感兴趣的远程参考:
$ git ls-remote | grep 1220
From http://something.com:8081/MyProject
e2e0212a59240ac5cd7c11220c35542523f44b59 refs/changes/13/713/1
b8c4dceea5eaf1bad711b0ea6938c80ec932726a refs/changes/20/1220/1
6f20c182ec7f54a2aa9e8f6188a0eef1b0790df4 refs/changes/20/1220/2
ed94a98386d224ce3d86004ce99f61220905a077 refs/changes/22/1222/1
把裁判拉过来:
git pull origin refs/changes/20/1220/2
这将创建一个 Git 提交点,您最终可以对其进行重新定基:
git rebase