基于Github的pull request流程做開源貢獻
最近給 beego 提了幾個 pull request (簡稱PR),都已被接受。在使用pull request的過程中,遇到了一點小問題,才知以前并非真的理解這個流程,故在此做點記錄整理。
我以 beego 為例,將pull request的整體使用流程繪圖如下:
beego代碼庫有兩個長期分支 master 和 develop , master 為穩定分支, develop 為開發分支,所有PR都要求提交到 develop 分支。
- 先將 astaxie/beego 代碼庫 fork 一份到自己的名下(如我的 youngsterxyf/beego )。
- 把 youngsterxyf/beego clone 到本地機器上做開發。因為PR要提到 astaxie/beego 的 develop 分支,所以最好對應地在你fork的代碼庫的 develop 分支做開發。在本地開發測試完成后,將commit push到 youngsterxyf/beego 。
- 在 youngsterxyf/beego 頁面點擊 “New pull request”,會跳轉到 astaxie/beego 創建一個新的PR,在頁面中需要選擇 base fork 的目標分支(這里為 astaxie/beego 的 develop 分支)和 head fork 的目標分支(這里為 youngsterxyf/beego 的 develop 分支)。PR提交后,等待 astaxie/beego 代碼庫的協作者來review我的PR。
- 如果其他人也給 astaxie/beego 提了PR(或者直接在 develop 上做了變更),我會把 youngsterxyf/beego 的 develop 分支同步到最新狀態,同步的流程為:
- 在本地代碼庫添加一個新的remote,名為 beego : git remote add beego https://github.com/astaxie/beego.git
- 在 develop 分支上執行 git pull beego develop ,這會獲取 astaxie/beego develop 分支最新的狀態,并 merge 到本地代碼庫的 develop 分支
- 將本地代碼庫的 develop 分支 push 到 youngsterxyf/beego : git push origin develop
- 在發布新的版本時, 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!