源码分支流程管理

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章