源碼分支流程管理

Git 分支管理規範

初始化 Git 倉庫

創建遠程倉庫的步驟略過。

第 0 步: 克隆遠程倉庫(可選)

命令示例,

git clone <倉庫地址> 

第 1 步: 提交併推送初始版本

在 Gitlab 系統中設置 master 分支爲 Protectd 分支,Protected 分支不允許 Developer 推送代碼,但 Maintainers 可以推送代碼。

命令示例,

# 提交本地修改:
git add .
git commit –m "提交日誌"
# 推送 master 分支:
git push origin master

第 3 步: 創建開發分支

在 master 分支上創建 dev 分支(開發分支),並推送至 Gitlab。master 分支與 dev 分支一樣,有且僅有一個,

命令示例,

# 從 master 分支上創建 dev 分支: 
git checkout –b dev master
# 推送 dev 分支:
git push origin dev

開發新功能

開發人員在 dev 分支上實現新功能,包括: 新特性與 Bug Fix

命令示例,

# 切換到 dev 分支: 
git checkout dev
# 提交本地修改:
git add .
git commit –m "提交日誌"
# 推送 dev 分支:
git push origin dev

若存在多個新特性可以並行開發,則可創建一個或多個 feature 分支(特性分支),命名規範: feature-分支創建日期-新特性關鍵字,例如: feature-v20201002-compliance

當新特性開發完畢後,需將 feature 分支合併到 release 分支,最後需刪除 feature 分支。

命令示例,

# 從 release 分支上創建 feature 分支:
git checkout –b feature-v20201002-compliance release

什麼時候需考慮使用 feature 分支?

  • 開發一個獨立的新特性(完成時,需合併到 dev 分支)
  • 技術研究與嘗試(若失敗,可隨時刪除 feature 分支)
  • 提前實現下一個版本需要開發的特性(可不在本次迭代中發佈)

推薦使用 feature 分支,但 feature 分支的生命週期不能跨一次迭代。

常規版本發佈

提測與準備

  1. 確認提測分支(feature/bug fix)上的功能是否開發完畢;
  2. 若開發完畢,填寫並提交提測工單給測試,並提交 merge request 到 release 分支;
  3. 測試創建 release 測試分支(發佈分支),命名規則: release-分支創建日期-待發布版本號,例如: release-v20201012-1
  4. 測試修改 merge request 目標分支到本次新建的 release 分支;
  5. 測試對該 release 分支進行測試

⚠️注: Gitlab 如何創建 Merge Request

命令示例,

# 從 master 分支創建 release 分支:
git checkout –b release-v20201012-1 master

測試與發佈

第 0 步: 集成測試

  1. 從 release 測試分支上檢出所有代碼並搭建集成測試環境;
  2. 安排測試人員,對 release 測試分支進行集成/冒煙測試;

第 1 步: 版本發佈

  1. 將 release 測試分支同時合併到 release 主分支和 master 分支;
  2. 在 master 分支上創建標籤,命名規則: hotfix-日期-發佈序號,例如: v20201012-1 或 hotfix-v20201012-1
  3. 刪除 release 測試分支;
  4. 上傳 Docker 鏡像;

創建release分支,版本發佈

命令示例,

# 合併 release 測試分支到 release 主分支:
git checkout release
git merge --no-ff release-v20201012-1
git push origin release
# 合併 release 測試分支到 master 分支:
git checkout master
git merge --no-ff release-v20201012-1
git push origin master

# 在 master 分支上創建標籤:
git tag v20201012-1
git push origin v20201012-1

# 刪除本地 release 分支:
git branch –d release-v20201012-1
# 刪除遠程 release 分支:
git push origin :release-v20201012-1

修復待發布版本中的 Bug

開發人員在 release 分支上修復測試人員提交給自己的 Bug。

修復待發布版本中的 Bug

只允許在 release 分支上修復 Bug,不允許提交任何新特性,這裏需開發主管和測試人員全程監管。

命令示例,

# 切換到 release 分支:
git checkout release-v20201012-1
# 提交本地修改:
git add .
git commit –m "提交日誌"
# 推送 release 分支:
git push origin release-v20201012-1

修復線上 Bug (Hotfix)

第 0 步: 創建 Hotfix 分支

  1. 從線上版本中上創建一個 hotfix 分支,命名規則: hotfix-分支創建日期-發佈序號,例如: hotfix-v20201012-1;
  2. 指導開發人員完成 Bug 修復;
  3. 通知測試對 hotfix 分支進行測試,驗證 Bug 是否修復;

創建 Hotfix 分支

命令示例,

# 從某個標籤上創建 hotfix 分支:
git branch hotfix-v20201012-1 v20200901-1

第 1 步: 發佈新版本

  1. 將 hotfix 分支同時合併到 master 與 release 主分支;
  2. 在 master 分支上創建標籤;
  3. 刪除 hotfix 分支;
  4. 上傳 Docker 鏡像;

⚠️注: 若 release 主分支存在封版但未發佈上線的代碼,這個未上線的 tag 必須作廢!

命令示例,

# 合併 hotfix 分支到 release 分支:
git checkout release
git merge --no-ff hotfix-v20201012-1
git push origin release

# 合併 hotfix 分支到 master 分支:
git checkout master
git merge --no-ff hotfix-v20201012-1
git push origin master

# 在 master 分支上創建標籤:
git tag hotfix-v20201012-1
git push origin hotfix-v20201012-1

# 刪除本地 hotfix 分支:
git branch –d hotfix-20190919-v1.0.1
# 刪除遠程 hotfix 分支:
git push origin :hotfix-20190919-v1.0.1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章