对于编号为1的PR,GitHub会自动创建参考refs/pulls/1/head
和refs/pulls/1/merge
。后者包含合并的结果,尤其适用于例如合并。 CI(因为您要测试的内容实际上是合并的结果)。
合并PR后,refs/pulls/<number>/merge
不再可用(我想因为PR不再合并)。目前我想对刚刚合并的版本进行测试。只给出PR编号,是否有一种简单的方法来访问合并PR的结果?
答案 0 :(得分:1)
以下应该可以解决这个问题,即使你应该知道提交可能存在多个“子”(其他人可能会在PR上工作并稍后再将其合并到master中):
$ git rev-list -n1 upstream/pull/<number>..upstream/master
这可以通过让第一次提交从upstream/pull/<number>
走到upstream/master
来实现。幸运的是,github只是在PR的最后一次提交时离开了upstream/pull/<number>
。
以下是https://github.com/RDFLib/rdflib的示例:
目前的历史如下:
* 371263f - (upstream/pull/486) Removed debugging print statement
...
* fe3fa52 - (upstream/master, upstream/HEAD) Merge pull request #482
|\
| * 354c352 - (upstream/pull/482) fix broken example
|/
* f81e0b2 - Merge pull request #480
....
这里有一些测试输出:
$ git rev-list -n1 upstream/pull/482..upstream/master
fe3fa522b48e787fa87dc1156e1a10bd6671b62c
$ git rev-list -n1 upstream/pull/486..upstream/master
(no output)