分支定義及含義說明
分支流程中包含5類分支,分別是master、release、test、dev、hotfix,各類分支作用和生命周期各不相同。
【master 】:(僅一個)該分支是線上穩定版本代碼,禁止提交代碼;對於各種庫的依賴都需要依賴此分支,需求上線時從dev分支直接合並到master分支;
【dev 】:開發分支(有多個),從master分支切出,是需要開發代碼的分支,所有開發均在dev分支;
【test 】:測試分支(僅一個),首次從master切出,需求提測時從dev分支合並到test分支進行測試;
【release】:預發布分支(僅一個),首次從master分支切出,需求上線前從dev合並到release分支,部署到預發布環境,進行上線前測試(暫時缺少此環境,預留此分支);
【hotfix 】:有多個,從master分支切出,解決線上緊急BUG的修復。
分支命名規則
dev開發分支命名規則:
基礎分支可以命名為:dev
迭代需求的支命名方式:dev-${APP版本號},如:dev-803(表示:APP的8.03版本);
正常需求分支命名方式:dev-${需求名},如:dev-life(生活號需求)、dev-ux(UX迭代需求)
hotfix分支命名規則:
hotfix-${日期},如:hotfix-20210813
代碼提交示例

角色及職責定義
模塊的開發組員:maintainer
dev、hotfix的分支開發
模塊的開發負責人(組長/模塊負責人):Owner
從master 打 dev、test、release、hotfix 分支
dev、hotfix的分支開發
從dev分支合並到test
從dev分支合並到master
將master合並到各個dev分支
刪除hotfix分支
分支記錄存放位置 - Git->wikis->分支記錄
版本號規范
dev、test及release版本號命名規則 - <主版本號>.<副版本號>.<發布號>
主版本號設置規則
產品的主體構件進行重大修改,主版本號加1
產品的主體構件之間的接口協議重大修改,主版本號加1
副版本號設置規則
主版本號變更時,副版本號置0
數據結構變更(新增或修改注釋含義的情況除外),副版本號加1
若副版本號累加至超過90時,采用主版本號進位制,主版本號加1,副版本號重新置0
發布號設置規則
主版本號或副版本號變更時,發布號置0
若發布的版本無數據結構變更,則發布號加1
hotfix版本號命名規則 - <主版本號>.<副版本號>.<發布號>
hotfix由於即修即刪,因此同release版本的版本號即可
說明:主版本號和副版本號的變更標志着重要的功能或結構變動。發布號的變更,用於體現小的功能變更
各種場景流程規則
當需要開發常規迭代時:
從master分支創建dev分支,例如:dev1.3.0;
在dev分支上開發代碼,push到遠程倉庫;
dev分支代碼開發完畢,合並到release分支,例如:release1.3.0 <開發組長/模塊owner>;
測試人員在release1.3.0分支進行測試,測試完畢后拿release1.3.0分支部署;
上線驗收完畢后將release1.3.0分支合並到master分支;
正常開發常規版本流程

緊急&BUG修復版本流程規則
當需要修復線上緊急BUG時:
從master分支創建hotfix分支;
在hotfix分支修復BUG,push到遠程倉庫;
BUG修復完畢后,合並到test測試分支進行測試,例如:hotfix-20210813合並到test分支 <開發組長/模塊owner>;
測試人員在test分支進行測試,測試完畢后拿hotfix分支合並到master進行部署;
上線驗收完畢后將master分支合並到各個dev分支;
當需要修復線上緊急BUG流程圖:

注意事項
dev分支之間不能合並代碼
release分支不能合並到dev分支
從dev分支合並到test分支測試時,只能合並dev分支上自己的commit到test,可參考git cherry-pick、git rebase命令
如發現當前test分支測試時,落后於master一個版本及以上,需要將master合並至當前test分支;
嚴禁直接在test、release、master分支進行需求開發和修改bug,特殊情況除外;
只有需求到提測日期才需要把開發分支的代碼合並到測試分支test上;
需求提測后如需要修改bug,在原來的dev分支修改,然后合並到test分支進行測試;
相關環境
預發布環境
生產環境
開發環境
測試環境
舉例說明(以803版本需求為例)
web-api 和 lib-service 項目現基於master分支創建了 test分支和dev-803分支,
test分支:測試分支,替換現有的testenv分支,
dev-803分支:803版本的需求開發的代碼提交到此分支;
開發階段把代碼提交到dev-803分支,在本地開發聯調通過后 並到達提測日期時再合並到test分支上;未到提測日期請不要合並到test分支;
803版本測試階段,修改bug還是在dev-803分支提交,然后再合並到test分支進行測試;
當803版本達到上線標准時,直接把dev-803分支合並到master分支
