2017-09-05 77 views
0

我打開了一個PR,然後意識到我想恢復最新的提交。所以,我沒有拉請求意外關閉

git reset --hard HEAD~1

再上新的變化工作,做

git push --force-with-lease

作爲一個非常意外的結果,PR得到了關閉。

enter image description here

有一件事我要補充的是,我用力推開其實之前添加任何提交。這可能是公關爲什​​麼關閉了嗎?

+1

通過刪除最後一次提交,您是否刪除了PR以前的所有提交?還是有其他承諾是公關的一部分? – poke

+0

所有這些;所以這個分支與'master'一致。 –

+1

那麼,這樣就使PR成爲「空的」,所以當GitHub在更新分支(它自動檢測PR中的變化)後重新檢查pull請求時,它確實看到上游的master已經包含了公關(因爲公關沒有包含任何新內容),並自動將公關合並。 – poke

回答

2

GitHub會自動監控分支的pull請求,所以對分支的更改將反映在pull請求中。主要的用例是簡單的更新地址代碼審查。它不限於簡單的提交添加,但是對分支上的任何更改都是如此。因此,例如,重寫歷史記錄(例如,合併代碼更改)的重新綁定也將出現在拉取請求中,取代之前的提交。

因此,當您在將分支恢復爲master後強制推送分支時,您基本上已經清空了拉取請求。因此,當GitHub檢查分支的拉取請求時,它注意到上游的master已經包含來自拉取請求的「所有更改」(因爲沒有)。

這會自動觸發GitHub的拉取請求解析並關閉拉取請求。

+0

謝謝。有沒有任何github文件指出這一點? –

+0

@Ursus我在文檔中找不到任何東西。最近我發現是[這個評論](https://github.com/github/hub/issues/198#issuecomment-6495118)它解釋了一點,GitHub確實這樣做。實踐會告訴你,我解釋的是實際行爲:) – poke

0

作爲一個非常意外的結果,PR得到了關閉..

在截圖的消息說,別的東西:拉請求是「成功合併和關閉」

這應該不是一個意外的結果。將分支合併到PR的目標分支中是您首先完成PR的原因。

您從等式中省略了,當您創建PR時,將通知項目的所有者。我懷疑他們在您重新修改分支上的更改時審查了您的公關並將其合併。然後你試圖重新分支分支,但是,由於PR已經合併並關閉,Github不再更新PR。


有可能推新的提交,甚至衍合那些參與pull請求和Github上盡職盡責地保持拉入請求最新的所有分支上的變化的一個分支。但是合併請求關閉後(合併與否),它成爲歷史的一部分,不再更新。