在此处输入图像描述
如果我将Jenkins文件推送到Gerrit,以便审查我的代码更改,我可以通过将分支设置为"FETCH_HEAD"来测试我的更改吗?它是如何工作的?
否,此处不能使用FETCH_HEAD
。
对于正在审查的Gerrit更改或挂起的更改,它们有一组特定的分支或引用,称为refs/changes/a/b/c
,用于指向所有补丁集。b
是每次更改的唯一自动递增编号。CCD_ 4是CCD_。c
是每个补丁集的序数。
以变更http://gerrithost/gerrit/c/12345
为例,变更编号为12345
。其第4个补丁集的分支是refs/changes/45/12345/4
。您可以使用git fetch origin refs/changes/45/12345/4 && git checkout FETCH_HEAD
来检索和签出提交。
在获取或提取ref之后,ref的tip对象(在大多数情况下是提交(sha1存储在FETCH_HEAD
中。例如,
git fetch origin master
git log -1 FETCH_HEAD
您将看到FETCH_HEAD
是master
在远程存储库中的最后一次提交。
git fetch origin dev
git log -1 FETCH_HEAD
现在FETCH_HEAD
已经成为dev
的最后一个提交。使用FETCH_HEAD
,您不必考虑提取的ref的名称。
对于Gerrit的更改,我建议使用Gerrit Trigger
插件。它非常易于配置和使用。