Git分支Git Flow開發規範

規範化管理代碼庫分支有助於版本庫在演進過程中始終保持簡潔,主幹結構清晰。各個分支各司其職,有利於後續的維護更新,避免版本發佈帶來的混亂問題。

參閱資料

《A successful Git branching model》

《Git官方文檔–Branching Workflows》

以下爲Git分支開發規範的簡單總結

分支結構

主要分支

master

  • 主分支,用於部署生產環境的分支,需確保master分支穩定性
  • master分支存儲了正式發佈的歷史
  • 屬於只讀唯一分支,只能從其它分支(如develop,hotfix)合併,不能直接在此修改
  • 所有向master分支的Push推送都應當打TAG標籤做記錄,方便追溯

develop

  • 開發分支,基於master分支檢出的平行分支
  • develop分支始終保持最新完成以及bug修復後的代碼
  • 屬於只讀唯一分支,只能從master以外的分支(如feature,hotfix)合併,不能直接在此修改

下爲master和develop平行分支示意圖:

支持分支

feature(官方亦稱topic)

  • 功能分支,基於develop分支檢出,用於新功能的開發
  • feature分支可同時存在多個,用於團隊中多個功能同時開發
  • 命名規則: feature/*,如feature/shopping_cart,feature/user_login
  • 屬於臨時分支,最終會被合併回develop(作爲新版本功能)或丟棄(放棄功能),最後可選刪除
  • feature通常僅存在於開發人員存儲庫中(本地庫),而不存在於遠程origin

下爲feature分支應用示意圖:

release

  • 發佈分支,基於develop分支檢出,用於準備發佈新階段版本
  • 用於Bug測試及修復,文檔生成和其它面向發佈任務 修復後
  • 也屬於臨時分支,最終會先被合併到master(發佈新版本),打TAG標籤,再被合併到develop,最後可選刪除
  • 命名規則:推薦爲release-*release/*,如release-1.0

下爲release分支應用示意圖:

hotfix

  • 補丁分支,基於master分支檢出,用於對線上發佈的版本進行BUG修復
  • 屬於臨時分支,最終會先被合併到master(發佈新版本,亦稱修復版本),打TAG標籤,再被合併到develop,可選刪除
  • 命名規則:推薦爲hotfix-*hotfix/*,如hotfix-1.0.1

下爲hotfix分支應用示意圖:

最後

推薦使用對Git Flow很好應用的圖形工具SourceTree,可以幫助我們很好的理解和管理git分支。

下圖爲SourceTree工作流默認配置:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章