master + -----> release/1.0 (1) | + ------------> issue/1 (2) | | | | | <----- MR ------ + (3) | | (4) + <--- MR ---+ (5) | <tag:v1.0> (6)
項目 Owner 負責建立當前待發布的分支,如master> git checkout -b release/1.0
,git
項目 Developer 根據已提交的 issue 建立對應的開發分支,如 release/1.0> git checkout -b issue/1
,segmentfault
項目 Developer 完成開發後,發起由issue/1
到release/1.0
的Merge Request給項目 Owner,gitlab
可並行開發 issue, 一樣執行步驟 2 ~3測試
項目 Owner 審查過代碼後,合併代碼纔可提交測試, 若出現 Bug,則執行執行步驟 2 ~3,開發
項目 Tester 測試所有經過後,發起由release/1.0
到master
的Merge Request給項目 Owner,get
項目 Owner 合併代碼並打標籤v1.0
,如master> git tag v1.0
,然後纔可發佈上線。it
無測試參與的項目io
好比開發公共庫或中間服務的項目,這種狀況下,能夠不拉
release
分支,而直接在master
上拉issue
分支,但Merge Request的步驟不能缺乏。ast
注意
合併後的分支應刪除掉。
master
最新的提交版本應該與線上版本保持一致
必須是 Protected, 僅限項目 Owner 提交或合併
release/{version}
當前開發分支,version
是版本號
最新提交版本應該與測試環境保持一致
issue/{id}
對應 issue 的開發分支