基于Github的pull request流程做開源貢獻

jopen 8年前發布 | 14K 次閱讀 beego Git 版本控制系統 Github

最近給 beego 提了幾個 pull request (簡稱PR),都已被接受。在使用pull request的過程中,遇到了一點小問題,才知以前并非真的理解這個流程,故在此做點記錄整理。

我以 beego 為例,將pull request的整體使用流程繪圖如下:

beego代碼庫有兩個長期分支 master 和 develop , master 為穩定分支, develop 為開發分支,所有PR都要求提交到 develop 分支。

  1. 先將 astaxie/beego 代碼庫 fork 一份到自己的名下(如我的 youngsterxyf/beego )。
  2. youngsterxyf/beego clone 到本地機器上做開發。因為PR要提到 astaxie/beego 的 develop 分支,所以最好對應地在你fork的代碼庫的 develop 分支做開發。在本地開發測試完成后,將commit push到 youngsterxyf/beego
  3. youngsterxyf/beego 頁面點擊 “New pull request”,會跳轉到 astaxie/beego 創建一個新的PR,在頁面中需要選擇 base fork 的目標分支(這里為 astaxie/beego 的 develop 分支)和 head fork 的目標分支(這里為 youngsterxyf/beego 的 develop 分支)。PR提交后,等待 astaxie/beego 代碼庫的協作者來review我的PR。
  4. 如果其他人也給 astaxie/beego 提了PR(或者直接在 develop 上做了變更),我會把 youngsterxyf/beego 的 develop 分支同步到最新狀態,同步的流程為:
    1. 在本地代碼庫添加一個新的remote,名為 beego : git remote add beego https://github.com/astaxie/beego.git
    2. 在 develop 分支上執行 git pull beego develop ,這會獲取 astaxie/beego develop 分支最新的狀態,并 merge 到本地代碼庫的 develop 分支
    3. 將本地代碼庫的 develop 分支 push 到 youngsterxyf/beego : git push origin develop
  5. 在發布新的版本時, astaxie/beego 的 develop 分支會先 merge 到其 master 分支,然后打上新的 tag 。這時我也會把 youngsterxyf/beego 的 master 分支同步到最新狀態,流程與 develop 分支相同。

在第3步中,如果發現 base fork 的目標分支和 head fork 的目標分支之間有代碼沖突,則需要先在本地代碼庫對應的分支上解決這個沖突,然后 push 到 youngsterxyf/beego ,再提PR。

來自: http://blog.xiayf.cn/2016/01/18/github-fork-pull-request/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!