常設(shè)分支
master 分支
-- master 為主分支,也是用于部署生產(chǎn)環(huán)境的分支,確保master分支穩(wěn)定性尉姨,不能直接修改代碼并级。上線時需打tag拂檩。
release 分支
-- release 為預(yù)上線分支,發(fā)布提測階段死遭,會release分支代碼為基準(zhǔn)提測
develop 分支
-- develop 為開發(fā)分支广恢,始終保持最新完成以及bug修復(fù)后的代碼
臨時分支
feature 分支
-- 開發(fā)新功能時,以develop為基礎(chǔ)創(chuàng)建feature分支
-- 分支命名:feature-*開頭的為特性分支呀潭, 命名規(guī)則: feature-user-control钉迷、feature-domain或feature-任務(wù)單號
hotfix 分支
-- bug修復(fù)分支至非,從常設(shè)分支切出hotfix分支
-- 分支命名:hotfix-*開頭的為bug分支,命名規(guī)則:hotfix-bug單號
開發(fā)流程
1糠聪、分支 ---- 從master分支切出一個新分支荒椭,命名為feature-*。
2舰蟆、提交 ---- 開發(fā)者完成開發(fā)趣惠,提交分支到遠(yuǎn)程倉庫。
3身害、合并 ---- 開發(fā)者發(fā)起merge請求(可在gitlab頁面“New merge request”)味悄,將新分支請求merge到develop分支,并提醒code reviewer進(jìn)行review
4塌鸯、審查 ---- code reviewer對代碼review之后侍瑟,若無問題,則接受merge請求丙猬,新分支merge到develop分支涨颜,同時可刪除新建分支;若有問題茧球,則不能進(jìn)行merge庭瑰,可close該請求,同時通知開發(fā)者在新分支上進(jìn)行相應(yīng)調(diào)整抢埋。調(diào)整完后提交代碼重復(fù)review流程弹灭。
5、轉(zhuǎn)測 ---- 一個模塊的相關(guān)功能完成前后端聯(lián)調(diào)就進(jìn)行轉(zhuǎn)測羹令,直接從當(dāng)前develop分支merge到release分支鲤屡,重新構(gòu)建測試環(huán)境完成轉(zhuǎn)測。
6福侈、上線 ---- 測試完成后酒来,從release分支merge到master分支,基于master分支構(gòu)建生產(chǎn)環(huán)境完成上線肪凛。并對master分支打tag堰汉,tag名可為v1.0.0_2019032115(即版本號_上線時間)
BUG修復(fù)流程
正常開發(fā)
正常開發(fā)過程中,轉(zhuǎn)測后測試環(huán)境發(fā)現(xiàn)的bug需要修復(fù)伟墙,從develop分支切出hotfix分支對bug進(jìn)行修復(fù)翘鸭,完成之后合并到develop分支。流程示意圖如下:
并行開發(fā)
并行開發(fā)過程中戳葵,轉(zhuǎn)測后測試環(huán)境發(fā)現(xiàn)的bug需要修復(fù)就乓,但是develop分支此時又有新內(nèi)容且該部分內(nèi)容目前不計劃轉(zhuǎn)測,可以release切出一個bug修復(fù)分支。完成之后需要同時merge到release分支與develop分支生蚁。流程示意圖如下:
生產(chǎn)環(huán)境Bug修復(fù)流程(緊急)
緊急Bug修復(fù)噩翠,需要從master分支切出一個bug修復(fù)分支,完成之后需要同時merge到master分支與develop分支(如果需要測試介入驗證邦投,則可先merge到release分支伤锚,驗證通過后再merge到master分支上線)。流程示意圖如下: