2015-10-17 34 views
7

用戶在GitHub的存儲庫中使用單個提交創建了一個PR。GitHub禮儀:如何使一個收到的GitHub公關更改歷史ff合併?

自PR以來,更改被推送到主存儲庫,因此合併不能快進。

TL; DR

我拉着他的分支,重建基礎幾次推到原點,所以PR提交現在有一個不同的哈希,和GitHub的PR爲拉不自動標記

長(er)版

我正在研究一個主題分支並提取他的主人。

* 5977cb4 - (user/master) PR <user> 
| * 857775e - (HEAD -> topic) topic commeit. <me> 
| | * 871201e - (master) Local changes in master <me> 
| |/ 
| * f648f4e - (origin/master) Changes in origin <me> 
|/ 
* 3461bd2 - Initial commit <me> 

,然後重建基礎後,他的主分支

➜ local git:(topic) git rebase user/master 
First, rewinding head to replay your work on top of it... 
Applying: Changes in origin 
Applying: topic commeit. 

* 1e2fe2e - (HEAD -> topic) topic commeit. <me> 
* 1c7caa9 - Changes in origin <me> 
* 5977cb4 - (user/master) PR <user> 
| * 871201e - (master) Local changes in master <me> 
| * f648f4e - (origin/master) Changes in origin <me> 
|/ 
* 3461bd2 - Initial commit <me> 

,然後以推動原產地底墊在我的主人和FF-合併話題:

➜ local git:(topic) git rebase master 
First, rewinding head to replay your work on top of it... 
Applying: PR 
Applying: topic commeit. 

➜ local git:(topic) git checkout master 
Switched to branch 'master' 
➜ local git:(master) git merge topic 
Updating 871201e..836e09d 
Fast-forward 

,並推動它原產地:

* 836e09d - (HEAD -> master, origin/master, topic) topic commeit. <me> 
* 46e591a - PR <user> 
* 871201e - Local changes in master <me> 
* f648f4e - Changes in origin <me> 
| * 5977cb4 - (user/master) PR <user> 
|/ 
* 3461bd2 - Initial commit <me> 

到現在爲止,PR提交具有不同的哈希值,而GitHub PR沒有提取它。

結論

現在,我不能拉乾淨它,因爲我已經在歷史上犯下的變化,只能用不同的哈希值。

我寧願讓GitHub將它標記爲合併,所以它不會顯示好像我拒絕了更改。

我應該如何指導用戶這樣做,使得PR可以快速合併?

他應該簡單地拉我的主分支?

我可以在將來如何更清楚地處理這些情況?

回答

2

Github的Pull Request永遠不會以快進的方式合併。這是設計的,所以明確指出誰批准列入由陌生人撰寫的提交。

從GitHub的幫助Merging a pull request

拉請求使用--no-ff選項合併。

因此,您可以採用no-ff方式合併PR,或櫻桃選擇提交併關閉PR。在這兩種情況下,作者身份都將保持不變,並且在PR中的謝謝消息的價值超過投稿人觀點的Merged狀態。

如果您決定合併PR,您可以要求貢獻者在當前master之上重新分配她的分支,以便歷史記錄沒有多大差異,但將該官僚體系引入工作流程可能並不值得。

保持一個乾淨的歷史是偉大的,但也有這樣的情況:一個乾淨的歷史是不是直線的 - 不要試圖過度工程吧:)

+0

謝謝!當我有一點時間時,我會更深入地看待文檔。 – MasterAM

+0

我結束了手動合併提交使用GitHub描述的方法(拉遠程到一個新的分支,從主合併,推)。這意味着2個不同分支中存在2個提交相同內容(但不同哈希)的提交,它們已合併而不影響最終版本的代碼。感謝您的提示! – MasterAM