分支型別:
主分支:master、develop、release 功能分支:hotfix、feature(根據專案實際需要新增)
分支策略規則:
僅master分支承擔釋出任務,每次釋出完成後追加tag(釋出日期)。release/hotfix分支測試完成並程式碼封版後,先進行合併、灰度迴歸後再進行產線釋出。develop、release作為“持續整合”分支。初始化/新建/合併等操作均需由配管(技術經理)完成。
程式碼提交規則:
所有人每天至少一次向主分支(develop、release)提交程式碼,除非沒有開發新功能或者沒有修復bug 每次提交都會觸發自動的程式碼走查、UT、IT等工作 每當任一步驟報錯,第一優先解決整合問題
版本命名規則:
release命名格式:“release_1.0.0_yyddmm"Hotfix命名格式:"hotfix_1.0.1_yyddmm"複製程式碼
分支型別詳細說明:
主分支:
中心程式碼庫永遠維持著三個主要的分支
master承擔釋出任務,並跟蹤最新產線釋出記錄(tag)。develop 當前規迭代需求開發release 提測時進行當前迭代的bug修復工作複製程式碼
功能分支
hotfix 分支feature 分支複製程式碼
用於幫助團隊成員並行處理每次追蹤特性、準備釋出、快速修復線上問題等開發任務。這些分支的生命週期都是有限的,它們最終都會被刪除掉(可選)。每一種分支都有一個特別的目的,並且有嚴格的規則,諸如起始分支、合併的目標分支等。
release 分支:用於支援常規研發迭代需求測試使用
建立自:develop(程式碼已提測) 分支命名規範:release1.*.*mmyydd 更新版本依賴(與release版本保持一致) 此分支僅允許修復缺陷的程式碼提交 測試完成且封版後合併至除其之外的所有動態分支。
hotfix 分支:用於支援緊急需求、產線缺陷修復生產環境釋出
建立自:master 分支命名規範:hotfix1.0.*mmyydd(master分支最近釋出tag第三位+1) 更新版本依賴(與hotfix版本保持一致) 此分支僅允許緊急需求或生產缺陷的程式碼提交 測試完成且封版後合併至除其之外的所有動態分支:develop/master(Tag)/release 程式碼合併後刪除分支(可選) 特殊情況說明:
如果此時已經存在了一個 release 分支,那麼 hotfix 的改變需要合併到這個 release 分支,而不是 develop 分支。因為把對 bug 的修復合併回 release 分支後,release 分支釋出後最終合併至 develop 分支。如果在 develop 分支中立刻需要對該 bug 的修復,且等不及 release 分支合併回來,可以直接合並回 develop 分支。
feature 分支(非必須):用於支援多迭代並行開發
建立自:develop 必須合併回:develop 分支命名規範:feature1.*.*mmyydd Feature 分支用來開發包括即將釋出或遠期釋出的新特性。Feature 分支生命週期和新特性的開發週期保持同步,但是最終會合並回 develop或被拋棄。Feature 分支通常僅存在於開發者的程式碼庫中,並不出現在 origin 裡,除非是長時間存在超過兩個版本並行開發的情況。
分支策略參考:
a-successful-git-branching-model