【Git管理篇】GitLab 版本分支管理策略(二)

          咱們採用目前的保留的分支體系:   master 、 develop(將feature、hotfix合到develop)、release測試

 1、代碼分支url

分支.net

說明3d

建立來源分支code

代碼來源blog

目標分支生命週期

代碼輸入方式開發

生命週期文檔

命名規則★get

★master

主幹分支,一般做爲代碼基線,全部發布的代碼最終都會合併到此分支。  

release、hotfix

develop

Pull request

長期

Master

★develop

開發分支,一般做爲其餘分支的源分支,也最終會合並回此分支

feature、

release、hotfix

develop

Pull request

長期

Develop

feature

功能分支,用於爲將來的應用版本開發新的功能需求

develop

developer

develop

Merge

併入目標分支後,刪除

Feature/{jira_issue_key}

★release

發佈分支,用於輔助新版本發佈的準備工做,例如小bug的修復,或者版本號的修改等等

develop

developer、

hotfix

Develop、master

Merge

併入目標分支後,刪除

Release/{jira_issue_key}

hotfix

修復分支,用於正式版本的緊急修復

master

開發者

Develop、master、release

Merge

併入目標分支後,刪除

Hotfix/{jira_issue_key}

 

2、功能開發

 

 

 

研發

測試

審查

建立並推送功能分支

 

 

建立 feature → develop 的 pull request

 

 

代碼審查

 

 

功能測試

 

 

合併代碼到開發分支

 

 

關閉pull request

 

 

 3、版本發佈

 

 

 

研發

測試

審查

建立並推送發佈分支

 

 

建立 realease → develop 的 pull request

 

 

建立 realease → master的 pull request

 

 

審查 realease → develop 的 pull request

 

 

審查 realease → master 的 pull request

 

 

發佈測試

 

 

合併代碼到開發分支

 

 

合併代碼到主幹分支

 

 

關閉realease → develop 的 pull request

 

 

關閉realease → master 的 pull request

 

 

建立代碼標籤

 

 

4、Hotfix修復

 

 

 

研發

測試

審查

建立並推送修復分支

 

 

建立 hotfix → develop 的 pull request

 

 

建立 hotfix → release 的 pull request

 

 

建立 hotfix → master的 pull request

 

 

審查 hotfix → develop 的 pull request

 

 

審查 hotfix → release 的 pull request

 

 

審查 hotfix → master 的 pull request

 

 

發佈測試

 

 

合併代碼到開發分支

 

 

合併代碼到發佈分支

 

 

合併代碼到主幹分支

 

 

關閉hotfix → develop 的 pull request

 

 

關閉hotfix → release 的 pull request

 

 

關閉hotfix → master 的 pull request

 

 

建立代碼標籤

 

 

5、場景模擬

Master分支 :必定是最後一次 commit已經上線,或者 他已經順利經過了 QA、PD、PO 的打磨鍛造,分分鐘拔出來上線。(ps:不用怕會祭天)

(1)常規開發

新建code庫,庫中 master和全部其餘分支,只有項目負責人有寫入權限

從code庫中master克隆一個分支出來,命名爲:branch_1.0.0   【develop】

開發人員在 此分支上修改,開發和自測完後,向 code庫發起pull request,請求代碼審查和合並

pro-master 進行代碼審查、合併後,提交測試。頭缺陷,繼續在 branch_1.0.0 修復,而後發起pull request,如此循環,知道最後,測試完成,能夠將 branch_1.0.0 上線

上線後,將此branch_1.0.0分支合併到msster,並給branch_1.0.0打上tag。  【ps:理論上,此時的 master和branch_1.0.0是徹底一致的】

(2)並行開發

假定:branch_1.0.1 和 branch_1.0.2 同時並行開發

狀況:

     第一種:  branch_1.0.1 先開發完,測試完,上線完以後,branch_1.0.2 才準備提測。 此時,須要在合併測試版本branch_1.0.2時,將master內容一塊兒合併,合併以後再進行測試

     第二種:  branch_1.0.1 和 branch_1.0.2 同時開發完,能夠合併成一個release版本, 或者 合併成到 branch_1.0.2 進行測試

     第三種: branch_1.0.1 開發完,測試完,未上線,branch_1.0.2 開發完,準備提測, 此時 操做和 第二種同樣

     第四種: branch_1.0.1 和 branch_1.0.2 都開發完,須要同時測試(不建議),只能一個分支先測試完上線,另外一個分支須要合併上線後的master再次測試,上線。

 

參考文檔:https://blog.csdn.net/BoReFrontEnd/article/details/97391441

相關文章
相關標籤/搜索