Skip to content

开发流程

git分支管理

基于gitflow的分支管理改版

master

主分支 , 产品的功能全部实现后 , 最终在master分支对外发布 该分支为只读唯一分支 , 只能从其他分支(beta/hotfix)合并 , 不能在此分支修改 另外所有在master分支的推送应该打标签做记录,方便追溯 例如beta合并到master , 或hotfix合并到master

feature

功能开发分支 , 基于当前最新的测试分支beta分支克隆 , 主要用于新需求新功能的开发 功能开发完毕后合到新beta分支(未正式上线之前不推送到远程中央仓库!!!) feature分支可同时存在多个 , 用于团队中多个功能同时开发 , 属于临时分支 , 功能完成后可选删除

feature/vx.x.x/功能

beta

测试分支, 从上一个最新的beta分支克隆 主要用于提交给测试人员进行功能测试 , 测试过程中发现的BUG在本分支进行修复 , 修复完成上线后合并到master分支并推送(完成功能)

beta/vx.x.x (版本号)

hotfix

补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复 修复完毕后合并到beta/master分支并推送 , 打Tag 属于临时分支 , 补丁修复上线后可选删除

hotfix/xxx功能、 hotfix/20221011

新流程版本走

产品侧: 日期+功能命名 一个需求一个单独分支 如:feature/1212/xxx

主版本: 主版本号内划分的按主版本+迭代功能版本走 如: feature/v3.3.0/upload, feature/v3.3.0/user

beta/alltest为测试所有功能分支,仅作测试使用,注意:不能从这里直接合并代码到master!

主要工作流程(新)

  1. 从最新的master分支拉取feature分支进行编码开发(多个开发人员拉取多个feature同时进行并行开发 , 互不影响)

  2. feature分支完成后, 合并到beta/alltest分支

  3. 合并完成后,直接提测, 提测过程中在feature分支上修改BUG,然后再合并到beta/alltest分支

  4. 测试通过后, 等待发版通知,如果测试通知可以发布,把对应的feature分支合并到master分支

  5. 上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改

  6. hotfix通过测试上线后 , 合并hotfix分支到beta/master并推送 合并之后 , 可选删除当前hostfix , 若不删除 , 则当前hotfix不可修改 , 若补丁未修复 , 需要从master拉取新的hotfix继续修改

  7. 上线时用master分支打tag(命名在原有的tag版本上+1),在ci/cd上使用tag进行发布上线

git commit 规范

<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸  commit 目的的简短描述,不超过50个字符,以动词开头
  │       │
  │       └─⫸ Commit Scope: 说明 commit 影响的范围,比如xx页面,xxx功能


  └─⫸ Commit Type: feat|fix|docs|style|perf|refactor|test|build|ci|

提交信息type 类型

  • feat:引入新功能(feature)
  • fix:修补bug
  • docs:添加或更新文档(documentation)
  • style: 格式调整(不影响代码运行的变动,空格,花括号换行)
  • perf: 性能提升的代码更改(performance)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试代码用例
  • build:依赖调整,影响构建系统、或者外部依赖第三方库的更改
  • ci:持续集成CI、CD的配置文件或者脚本的更改
  • chore:不属于之上范畴的其他不修改源文件及测试文件的其他杂项更改

主要工作流程(旧,暂时废弃,后期如果产品迭代流程有修改还是继续沿用)

  1. 从最新的beta分支拉取feature分支进行编码开发(多个开发人员拉取多个feature同时进行并行开发 , 互不影响)

  2. feature分支完成后 , 合并到beta分支,等测试通过后可以选择删除当前feature , 也可以不删除 . 但当前feature就不可更改

  3. 从最新的beta拉取beta分支进行提测(beta/vx.x.x)beta+ 版本号方式 , 把当前版本所有的功能分支feature合并到新的beta上, 提测过程中在feature分支上修改BUG

  4. beta分支测试通过后 , 合并beta分支到master并推送 合并之后 , 不可删除beta . 线上有问题也必须从master拉取hotfix分支进行修改

  5. 上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改

  6. hotfix通过测试上线后 , 合并hotfix分支到beta/master并推送 合并之后 , 可选删除当前hostfix , 若不删除 , 则当前hotfix不可修改 , 若补丁未修复 , 需要从master拉取新的hotfix继续修改

  7. 上线时用master分支打tag(命名在原有的tag版本上+1),在jenkins上使用tag进行发布上线