2012-02-03 53 views

回答

26

As of 15.08.2016 GitHub上允許通過GUI改變pull請求的目標分支:

screenshot

現在,您可以更改打開拉請求的基地分支。創建拉取請求後,您可以修改基本分支,以便將拉取請求中的更改與不同的分支進行比較。通過更改原始拉取請求的基本分支,而不是使用正確的基本分支打開新分支,您將能夠保留重要的工作和討論。

+1

這應該是這個問題的正確答案(在升級到GitHub之後)。 – stuxnetting 2017-08-17 22:08:03

+0

此功能似乎不再存在(截至2018-02-15),是嗎?在最近的拉取請求中,目標分支與源存儲庫/分支在淺藍色背景上顯示爲相同的藍色字體,而不再是按鈕。 – cgogolin 2018-02-15 14:01:13

+0

啊!它確實!首先需要點擊「編輯」(這在上面的屏幕截圖中是不明顯的)。我忽略了這一點。抱歉。 – cgogolin 2018-02-15 14:02:16

52

提交者可以在發出拉取請求時更改它,但一旦它們發出,您就無法更改它。

另一方面,您可以手動合併他們的分支和推送,這是我半定期爲錯誤的拉取請求做的。

您可能會發現hub gem有助於處理拉取請求的組件。

創業板包裹起來的手工工藝,它是:

  1. Add a remote的叉到本地結帳。
  2. 取回那個遙控器。
  3. git checkout ${target_branch} && git merge ${remote}/${branch}
  4. git push origin ...
+1

如果我手動合併和推動,將Github上意識到,拉入請求已得到有效完成?任何關於如何從遠程單獨的回購(叉)合併的指針? – eoinoc 2012-02-04 20:01:44

+3

我不確定,但不直接 - 因爲更改沒有合併到目標分支中,所以拉取請求沒有按照定義完成。您需要手動關閉它。至於指針,請參閱編輯的註釋。 – 2012-02-04 20:16:26

+0

我建議使用'git merge --no-ff ...'作爲@GuillermoMansilla在他的回答中提到的。 – jjmontes 2016-05-31 16:07:49

7

這沒有什麼錯丹尼爾·皮特曼的解決方案,但是,我會像對待那些合併爲「沒有快進」,就是改變步數3:

git checkout ${target_branch} && git merge --no-ff ${remote}/${branch} 

通過使用--no-ff,歷史將更容易閱讀。它會清楚地說$n提交來自$branch,如果您需要恢復在該分支中完成的某些操作,它也將使您的生活更輕鬆。

要還回答eoinoc的問題,並給出一個額外的小費:

執行合併後,你的git的CLI會提示你寫郵件時,一般通用的消息將顯示在說着什麼樣

合併遠程跟蹤分支「用戶/其分支」到您的分支

確保編輯消息,包括上拉的請求數量的參考。這就是: (假設拉請求號123)

合併遠程跟蹤分支「用戶/其分支」到您的分支

裁判#123解決什麼...

因此,下一次你去看github上的問題/拉請求頁面,並檢查特定的拉動請求,你會看到你的消息的鏈接提交,你做了合併。

下面是我的意思是一個截圖。

enter image description here

12

使用由其他的答案中提到轂寶石的替代方法是use the command line to merge locally pull requests,其中,可以執行:

$ git fetch origin 
$ git checkout *target_branch* 
$ git merge pr/XXX 
$ git push origin *target_branch* 

只以上命令直接工作,如果第一次添加以下行到您的.git/config文件中:

fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/* 

所做的是允許您下載所有拉取請求。由於這可能不適合巨大的回購,GitHub修改了說明以使用git fetch origin pull/ID/head:BRANCHNAME語法,從而避免修改配置文件並僅下載該單個請求。

7

雖然,因爲它是不是你的,你可以很容易地創建一個新的,如果相關的源代碼庫依然存在,你不能改變現有的拉請求 - 是的,哪怕是別人的。

轉到提交的資料庫,然後創建在他/她的倉庫使用相同的提交新的拉請求,但確保你正確設置正確的目標分支。

然後回到自己的資源庫,並接受新的拉請求。瞧!

+0

這是否工作,如果他們已經改變了他們的存儲庫?如何確保它是「相同的提交?」 – ragerdl 2014-10-09 23:34:03

+0

@ragerdl - 如果您正在使用'按功能分支'模型進行開發,那麼您可以使用針對上游分支的分支創建PR,並且它應該包含相同的提交。 – geerlingguy 2015-04-01 14:24:01

+2

直接在GitHub上執行此操作的唯一方法,無需訪問本地回購。 – kopischke 2015-12-17 16:42:12

5

要做到這一點去到你的資料庫的首頁,點擊分公司,並從主更改默認分支成別的東西,在我的情況下,「開發」。

在那之後,每當有人創建了一個拉請求merge按鈕將自動合併請求爲「開發」,而不是主人。

enter image description here

+0

感謝您的錯字修復@錫文我欣賞它 – abbood 2016-08-02 18:02:55

+2

有沒有必要感謝我們的調整/編輯。這是我們爲該網站所做的事情。不斷寫出好的答案,這是非常感謝。 – 2016-08-02 22:56:55

相關問題