2015-01-02 36 views
4

爲合併爲了保持一個線性的歷史,我用下面的方法來合併,而不是依賴於GitHub的合併功能的變化:引入請求手動合併後衍合不顯示在Github上

git checkout -b feature_x user/feature_x 
git rebase master       
git checkout master 
git merge --no-ff feature_x 
git push origin master      # On Github: PR gets merged and closed 
git branch -D feature_x 

的上面的工作完全正常,但在我需要手動解決衝突的情況下,PR不會自動合併到Github上,我必須手動關閉PR。

是否有更好的方法來合併自動顯示Github PRs合併和關閉的請求?

+0

我認爲這是rebase,而不是衝突,導致github無法確定拉請求合併。 – Gordon

+0

@戈登你說得對。重新綁定分支會創建一組不同的提交,與原始提交集無關,而github無法檢測到新提交與相同的拉取請求有關。 – mandark

回答

0

正如onlythefinestwilldo正確指出的那樣,一旦分支被重新綁定,它將包含一組不同的提交,這意味着原始的請求不會受到影響。

爲了解決這個問題,我們改變了我們的過程:現在,我們在合併更改到主要時不會分支分支。如果無法合併更改,則會要求拉取請求的創建者重新綁定其分支並更新拉取請求。雖然不方便,但這是確保合併時拉取請求自動關閉的唯一方法。

0

由於該功能是重新設計的,因此其提交歷史記錄會完全抵消。這基本上是一個新的分支。

您可以強制推送重定位的功能分支,覆蓋拉取請求(假設您是維護者,並且您有寫入權限)。

$ git push -f [feature] [remote] [feature]

一旦GitHub上獲得新主人,拉請求將被關閉。

+0

就像你說的那樣,這需要寫入權限,這是不同的場景。另外,可以更改本地歷史記錄,但不建議更改公共歷史記錄,尤其是在可能影響另一個用戶的情況下,該用戶在此情況下將成爲拉取請求的創建者。 – mandark