Github's Pull Requests

前陣子在同事的推廣下試玩了一下Github的Pull Requests功能,覺得還滿不錯的,稍微將之紀錄一下。

Pull Requests的功能對筆者而言就如同它字面所呈現的意思一樣,開發人員可以透過Github發出Pull Requests要求請求他人將程式拉下來看,簡單的來說有點由開發人員主動要求他人幫忙做Code Review的意味。

在導入Pull Requests時,開發人員需養成在一個獨立的Branch做新Feature開發的好習慣,開發時主動發出Pull Requests要求大家一起來關注整個Feature的實作過程,他人可透過Pull Requests清楚的看到這次異動的部份,針對異動的部份可以做些討論與給予建議。開發人員在開發的過程中也可隨時透過Pull Requests更新整個開發的進度。待開發告一段落,開發人員可指定一位團隊成員做為負責人,負責對整個Feature的開發做背書,並負責將Branch合併回開發主線。

這邊實際的帶一遍運作流程,當我們為要加的Feature開好了一個獨立的Branch後,我們就可以將Github切到剛建立的Branch,然後按下上方的Pull Request按鈕發起Pull Requests的要求,讓有興趣的團隊成員可以先開始關注。

image

發起Pull Requests會要指定最後要合併回哪個分支,通常這邊都是直接指定開發主線就好,下方還要記得填寫這個Pull Requests的名稱即細部的描述,都完成後按下下方的Send pull request按鈕就可以了。

image

到這邊Pull Requests已經成功的發起,每當對應的分支有上Git的Commit,都可以在Pull Requests上看到,團隊成員可以很即時的透過Pull Requests查看到底改了些什麼。(這邊必須要注意到,上面提過的要指定一個團隊成員為這個Feature做最後的背書與負責合併回開發主線,也是透過這邊去指定。)

image

也可以在上面針對修改的內容作些討論。

image

若Feature開發告一段落,而團隊成員對於修改也沒有什麼意見,那負責背書與合併回開發主線的團隊成員就可以直接將頁面捲動到最下面,按下Merge按鈕Pull Requests就會自動的將分支併回開發主線,只有發生衝突無法自動合併,才需要自己手動使用Git排解。

Pull requests可以有效的讓團隊成員清楚了解各自在所在進行的任務、任務的進度、以及實作的方法。藉由彼此的交流討論,可以看到一個人沒辦法看到的盲點,也可以從中互相學習,進而帶起整個團隊的程度。而每個feature也會留下詳細的討論資料,若有需要隨時可以查詢翻閱。