Git 加Codeup版本管理规范

66 阅读3分钟

Git 版本管理规范

目录

  1. 解决的问题
  2. 分支策略
  3. 版本号规范
  4. 流程图解
  5. 操作规范
  6. 发布流程
  7. 注意事项

解决的问题

  1. 新功能未经测试直接上线,导致生产事故
  2. 紧急更新时,提交未完成的功能代码
  3. 代码审查、测试流程缺失造成的质量失控

分支策略

分支类型命名规范生命周期说明
主分支master永久生产环境对应分支,仅接受release分支合并
开发分支develop永久集成分支,所有功能开发完成后的统一合并点,相当于所有人最新的开发版本
功能分支 非必要feature/YYYYMMDD_名称功能开发期间单个功能开发隔离环境,多人协作且工时超过1天的功能全部要拉feature分支出来写,写完以后合并到develop分支中
测试分支release/版本号测试阶段测试专用分支,测试通过后合并到master
修复分支 很少用fix/YYYYMMDD_问题简述Bug修复期间紧急生产问题修复

维护流程:

flowchart TD
    A([Start]) --> B{新功能是否需要加feature分支?\n需要满足:\n1. 多人协作\n2. 工时>1天}
    B -->|是| C[从develop创建feature-xxx分支]
    B -->|否| D[直接在develop分支开发]
    C --> E[开发新功能]
    D --> F[开发新功能]
    E --> G[自测完毕]
    F --> G
    G --> H[在codeup上提交合并到develop分支 见操作1]
    H --> I[develop分支联调]
    I --> J{联调是否通过?}
    J -->|是| K[合并到release分支]
    J -->|否| I
    K --> L[执行测试]
    L --> M{测试是否通过?}
    M -->|是| N[在release分支打Tag 并提交发行版 见操作2 合并到master分支 操作3]
    M -->|否| L
    N --> O[开始下个版本迭代]
    O --> P([End])

操作1:在codeup上提交合并请求,到develop分支

image.png

image.png

操作2:如何给分支打tag,建立发行版:如何管理发行版_云效(Alibaba Cloud DevOps)-阿里云帮助中心

注意: 发行版和tag的标签不能写一样,否则后面提交代码会报错,最好是tag写v1.0.0,发行版名称为:正式版v1.0.0

操作3::如果是release合并到master分支,跟上述操作一样,只是目标这里换成了master分支,来源换成release分支

版本号规范

采用 语义化版本 2.0.0 规范:

主版本号.次版本号.修订号[-先行版本号]
  • 主版本号:不兼容的API修改
  • 次版本号:向下兼容的功能新增
  • 修订号:问题修复
  • 先行版本号:预发布版本标识(如alpha/beta)

示例:

v1.0.0          # 正式发布
v2.1.4-beta.1   # 测试版本
v3.0.0-rc.2     # 候选版本

操作规范

功能开发流程

  1. 判定这个新功能是否满足两个条件:1.多人协作 2.工时超过1天,如果满足这两个条件就一定要创建功能分支处理,否则就直接在dev分支写。

  2. 从develop分支创建功能分支

    git checkout -b feature/20220708_login develop
    
  3. 本地开发并定期提交

  4. 推送远程仓库

    git push origin feature/20220708_login
    
  5. 在codeup上发起Merge Request到develop分支

  6. 代码审查通过后合并

紧急修复流程【很少用】

  1. 从master创建修复分支

    git checkout -b fix/20220708_login_captcha master
    
  2. 修复完成后创建对应测试分支

  3. 通过测试后合并到master和develop

分支清理规则

分支类型清理条件
功能分支合并到develop后立即删除
测试分支版本发布后保留7天
修复分支合并到master后立即删除

发布流程

  1. 从develop创建release分支

    git checkout -b release/v1.2.0 develop
    
  2. 进行系统测试

  3. 测试通过后合并到master

    git checkout master
    git merge --no-ff release/v1.2.0
    git tag -a v1.2.0 -m "正式发布版本v1.2.0"
    
  4. 同步到develop分支

    git checkout develop
    git merge --no-ff release/v1.2.0
    

写在最后

这一套是项目负责人和开发组长要搞懂的,一线员工实在玩不懂,就把develop分支当主分支开发就行了。