開發規模不大,結合比較正式的規范做了一些簡化
基本概念
常設分支
- master - 主分支,用于正式發布
- develop - 開發分支,用于創建新開發feature分支
臨時分支
-
feature/*** - 任務開發分支
-
release - 預發布分支
-
hotfix/*** - 線上熱修分支
這三種分支都屬于臨時性需要,使用完以后,應該洗掉,使得代碼庫的常設分支始終只有Master和Develop,
環境
正式環境:production
測驗環境:testing
開發環境:development
分支說明
master(主分支)
master為主分支,用于部署到正式環境production,一般由release或hotfix分支合并,所有提供給用戶使用的正式版本,都在這個主分支上發布,任何情況下不允許直接在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,一旦修復上線,便將其洗掉,
基本流程
- 每開發一個新功能,創建一個
feature分支,多人在此分支上開發; - 提測時,將
master分支和需要提測的分支匯總到一個release分支,發布測驗環境; - 發現bug時,在
feature分支上debug后,再次回到2; - 發布生產環境后,將
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分支)
-
確認要發布的feature 分支上的功能是否開發完畢并提交;
-
創建release 分支(發布分支),將所有要發布的分支逐個合并到release分支,有如下情況:
-
feature分支(可能有多個)
-
master分支(期間可能有其他release版本更新到了master)
-
命名規則(可選):release-分支創建日期-新特性和待發布版本號
-
發布到測驗環境,通知測驗;
-
測驗完成后洗掉本次發布的所有feature分支,
修復待發布版本中的Bug(feature分支)
如果發現bug,開發人員在 feature 分支上修復測驗人員提交給自己的bug,修復完成后,合并到 release 分支,發布測驗環境,
發布正式環境
-
根據修復后的release分支再次將master合并,打包發布生產環境;
-
確認發布成功,并線上驗收通過后,將release分支合并到master分支;
-
在master分支上創建標簽(可選),命名規則:tag-日期-新特性和版本號,版本可根據需要添加,作為發版里程碑標記;
-
洗掉對應release 分支,
修復線上Bug(hotfix分支)
-
從master 分支某個tag 上創建一個 hotfix 分支(熱修復分支),一般是最新的tag應該和當前生產環境對應;
-
開發人員完成Bug 修復,提交hotfix分支到測驗環境驗收通過;
-
再次發布正式環境流程;
-
將 hotfix 分支合并到 master 分支;
-
在master分支上創建標簽(可選),命名規則:tag-日期-新特性和版本號,版本可根據需要添加,作為發版里程碑標記;
-
洗掉 hotfix 分支,
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/544999.html
標籤:其他
上一篇:前端分支規范
