對於編號爲1的PR,GitHub會自動創建一個編號refs/pulls/1/head
和refs/pulls/1/merge
。後者包含合併的結果,並且對於例如CI(因爲你想測試的實際上是合併的結果)。獲得合併PR結果的合併結果
合併PR後,refs/pulls/<number>/merge
不再可用(我想因爲PR不再合併)。目前我想對剛剛合併的版本進行測試。只有PR編號,有沒有簡單的方法可以訪問合併的PR的結果?
對於編號爲1的PR,GitHub會自動創建一個編號refs/pulls/1/head
和refs/pulls/1/merge
。後者包含合併的結果,並且對於例如CI(因爲你想測試的實際上是合併的結果)。獲得合併PR結果的合併結果
合併PR後,refs/pulls/<number>/merge
不再可用(我想因爲PR不再合併)。目前我想對剛剛合併的版本進行測試。只有PR編號,有沒有簡單的方法可以訪問合併的PR的結果?
下應該做的伎倆,即使你應該知道,有可能多一個提交的「兒童」(別人能的基礎上的公關工作,再後來它合併到主):
$ git rev-list -n1 upstream/pull/<number>..upstream/master
這是通過從upstream/pull/<number>
到upstream/master
獲得第一次提交。幸運的是github在公關的最後一次提交時離開了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)
哇,你必須對git有很多瞭解。非常感謝! – Martijn
可能是我沒有說清楚。問題是我實際上在尋找合併提交(例如它的sha),只給出PR號。 – Martijn