什麼是 Pull Request?

SC Tuan
2 min readNov 22, 2018

--

Github/Bitbucket 裡面有很多功能,可能不是每個人都用過,而不同團隊的文化也不同,最近恰好遇到需要用這個功能,於是看了一下這個功能的用法。

目的

為什麼要提交一個 PR (Pull Request)?

當開發者完成一個功能時,亦即,在一般情況下,開發者在一個他專屬的分支上進行功能開發,然後完成該功能。

這時,開發者需要將這個功能合併回 master 分支,但他不可能再沒有被檢查過的情況下做合併,因此需要該專案的維護者或是其他工程師一起合作檢查。

因此,開發者需要告知其他人,請他們來檢查,甚至在檢查後,大家一起討論並且修改不足或是錯誤的地方,最後才合併。

Pull Request 就是為此而存在。

功能

Pull Request 是什麼?

  • 通知:告知相關人士一起來檢查
  • 討論:讓討論不分散,集中在某個畫面上,致使訊息不流失
  • 修改:進行錯誤或是改善,根據討論而做出的修改 (follow-up commit) 會標示在這邊

流程

一個 pull request 的誕生如下:

  • 開發者在自己的分支上開發一個功能,然後完成
  • 開發者將自己的分支提交上去
  • 開發者建立 PR ,告知大家來做檢查(請相關人士把該分支拉下來檢查)
  • 相關人士在該 PR 下面進行討論
  • 如果需要修改,再繼續進行修改
  • 完成後,專案的維護者將該分支合併到指定的分支上

除了已經完成功能以外,當開發者遇到問題時,也可以提交一個 PR 出來,讓大家知道他遇到什麼問題。

訊息

一個 PR 需要以下四種訊息:

  • source repository : 改好的功能在哪個 repository 上
  • source branch : 改好的功能在哪個 branch 上
  • destination repository : 要合併到哪個 repository 上
  • destination branch : 要合併到哪個 branch 上

通常,如果大家都在同一個專案上工作的話,那你要告訴大家你改的東西在哪個分支上(source branch),最後要合併到哪個分支 (destination branch)。

如果你是對開源專案進行修改,通常你是 fork 一份,然後修改,才會需要填寫 repository 的部分。

參考文獻

--

--

SC Tuan
SC Tuan

Written by SC Tuan

iOS developer(Obj-C & Swift) / Web developer (Java, Javascript, CSS,HTML)