前端分支規範

2023-02-24 18:01:32

開發規模不大,結合比較正式的規範做了一些簡化

基本概念

常設分支

  • master - 主分支,用於正式釋出
  • develop - 開發分支,用於建立新開發feature分支

臨時分支

  • feature/*** - 任務開發分支

  • release - 預釋出分支

  • hotfix/*** - 線上熱修分支

這三種分支都屬於臨時性需要,使用完以後,應該刪除,使得程式碼庫的常設分支始終只有Master和Develop。

環境

正式環境:production

測試環境:testing

開發環境:development

分支說明

master(主分支)

master為主分支,用於部署到正式環境production,一般由releasehotfix分支合併,所有提供給使用者使用的正式版本,都在這個主分支上釋出,任何情況下不允許直接在master分支上修改程式碼。

develop(開發)

develop為開發分支,始終保持最新完成以及 bug 修復後的程式碼,可根據需求大小程度(工時是否小於一天)確定是由 feature 分支合併,還是直接在上面開發。

持續整合、最新隔夜版本的生成等都是基於這個分支。

release(預上線分支、預釋出分支)

release為預上線分支,用於部署到測試環境testing,釋出正式版本之前(即合併到Master分支之前),我們可能需要有一個預釋出的版本進行測試。從master或develop拉取,測試完成merge回master和develop

如果 存在 未測試完畢的需求,就基於master建立。

如果 不存在 未測試完畢的需求,就基於develop建立。

不建議直接在release分支上直接修改程式碼。

feature 分支

feature為需求開發分支,從develop拉取,開發feature完成,merge回develop,一旦該需求上線,便將其刪除。

hotfix(線上熱修分支)

hotfix 為緊急修復分支,從master拉取,修復並測試完成merge回master和develop,一旦修復上線,便將其刪除。

基本流程

  1. 每開發一個新功能,建立一個feature分支,多人在此分支上開發;
  2. 提測時,將master分支和需要提測的分支彙總到一個release分支,釋出測試環境;
  3. 發現bug時,在feature分支上debug後,再次回到2;
  4. 釋出生產環境後,將release分支合併到master分支,刪除release分支。

命令列範例:

# 1 從develop分支建立feature分支
git branch -b feature/branch-test develop

# 2-1 從master或develop分支(具體條件看上文,這裡選擇master)建立release分支
git branch -b release master

# 2-2 切換到release分支,把feature/branch-test分支合併到release分支
git checkout release
git merge feature/branch-test

# 4-1
git checkout master
git merge release

# 4-2 刪除feature和release分支(本地)
git branch -d feature/branch-test
git branch -d release

刪除分支:

# 清除本地remote
git remote prune origin
# 刪除本地分支(-D為強制刪除)
git branch -d|-D  [branchName]
# 刪除遠端分支
git push origin --delete [branchName]

其他場景

釋出測試環境(release分支)

  1. 確認要釋出的feature 分支上的功能是否開發完畢並提交;

  2. 建立release 分支(釋出分支),將所有要釋出的分支逐個合併到release分支,有如下情況:

  • feature分支(可能有多個)

  • master分支(期間可能有其他release版本更新到了master)

  1. 命名規則(可選):release-分支建立日期-新特性和待發布版本號

  2. 釋出到測試環境,通知測試;

  3. 測試完成後刪除本次釋出的所有feature分支。

修復待發布版本中的Bug(feature分支)

如果發現bug,開發人員在 feature 分支上修復測試人員提交給自己的bug,修復完成後,合併到 release 分支,釋出測試環境。

釋出正式環境

  1. 根據修復後的release分支再次將master合併,打包釋出生產環境;

  2. 確認釋出成功,併線上驗收通過後,將release分支合併到master分支;

  3. 在master分支上建立標籤(可選),命名規則:tag-日期-新特性和版本號,版本可根據需要新增,作為發版里程碑標記;

  4. 刪除對應release 分支。

修復線上Bug(hotfix分支)

  1. 從master 分支某個tag 上建立一個 hotfix 分支(熱修復分支),一般是最新的tag應該和當前生產環境對應;

  2. 開發人員完成Bug 修復,提交hotfix分支到測試環境驗收通過;

  3. 再次釋出正式環境流程;

  4. 將 hotfix 分支合併到 master 分支;

  5. 在master分支上建立標籤(可選),命名規則:tag-日期-新特性和版本號,版本可根據需要新增,作為發版里程碑標記;

  6. 刪除 hotfix 分支。