Git版本管理流程與規範-生活圈

分支定義及含義說明
分支流程中包含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分支

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