git

项目发布流程

  • 功能开发
  • 提交测试
  • 提交预发布测试
  • 提交生产测试
  • 完成

分支定义:

  • 按存在周期:

    • 长期分支:存在整个项目开发过程中,masterdevelop
    • 短期分支:存在一段时间,(上个版本完成到下个版本完成 等)testrelease
    • 临时分支:功能分支,(用于开发的具体功能的分支 功能完成后删除)feature
    • 及时分支:修复分支,(用于修复 bug 完成后立即删除)bugfixhotfix
  • 按功能用途:

    • 功能性分支:
    • 生产分支:master
    • 基础开发分支:develop
    • 测试分支: test
    • 预发分支:release
    • 开发分支(编码分支):
    • 功能分支:feature
    • 修复分支: bugfixhotfix

分支合并及提交策略:

  • 功能性分支不允许直接提交代码,只允许合并和解决冲突提交。
  • 所有功能开发分支从基础开发分支检出
  • 合并需由开发分支向功能分支合并
  • 合并由下游分支向上游分支合并

开发流程:

  • 新功能开发:从基础开发分支 develop 检出 feature/xxx
  • 功能自测完成:合并 feature/xxxtest,提交测试
    • 测试通过:等待合并到 develop 进入下一环节
    • 测试未通过:在 feature/xxx 修复问题 合并到 test 提交测试
    • 注意:不建议从 test 检出 bugfix 修复问题;禁止在 test 上修改并提交;
  • 测试完成,进入下一环境(预发布):
    • 合并待发布的功能分支 feature/xxxdevelop 分支,并删除该功能分支,自此该功能表示已完成(也可以从develop分支检出release 分支作为待发布分支,合并功能分支到待发布分支)
    • 合并所有待发布功能到待发布分支develop(release),提交预发布测试
    • 测试通过:等待发布生产。
    • 测试未通过:从待发布分支develop检出bugfix/xxx进行修复,代码开发完成后合并修复分支bugfix/xxxtest分支测试。
      • 测试通过,合并bugfix/xxx到待发布分支devel 大专栏  gitop 提交测试
      • 测试通过,等待发布生产,删除修复分支bugfix/xxx
      • 测试不通过,继续修复
      • 测试不通过,继续修复
  • 预发布测试完成,进入下一环节(生产):
    • 合并待发布分支develop 到 生产分支master,发布上线。并打tag标签vx.x.x
  • 生产测试未通过或线上 bug:
    • 从生产分支master检出热修复分支hotfix/x.x.x,进行修复,开发完成后合并代码到 test,提交测试:
    • 测试通过,合并热修复分支hotfix/x.x.x到待发布分支develop,提交测试:
      • 测试通过,合并热修复分支hotfix/x.x.x到生产分支master,提交测试:
      • 测试通过,删除热修复分支hotfix/x.x.x,并打tag标签vx.x.x
      • 测试不通过,继续修复
      • 测试不通过,继续修复
    • 测试不通过,继续修复

分支权限及 review:

  • master:项目负责人,保证发布生产时代码合并及 review
  • develop:开发负责人,合并功能分支,及修复分支时的 review
  • test:所有人,

提交信息:

  • 在合并到待发布分支之前,可以对自己的功能分支进行提交历史整理。
  • 信息撰写:type 代表某次提交的类型,比如是修复一个 bug 还是增加一个新的 feature。所有的 type 类型如下:
    • feat: 新增 feature
    • fix: 修复 bug
    • docs: 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE 等等
    • style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
    • refactor: 代码重构,没有加新功能或者修复 bug
    • perf: 优化相关,比如提升性能、体验
    • test: 测试用例,包括单元测试、集成测试等
    • chore: 改变构建流程、或者增加依赖库、工具等
    • revert: 回滚到上一个版本

参考: Angular Commit Message Conventions

分支存在周期

  • master,develop:一直存在整个项目开发周期。
  • test:上个版本完成到这个版本完成(或者任一生产版本完成可删除,从develop重新检出新的test分支)
  • feature:从功能开发到合并进待发布分支develop,删除功能分支。
  • bugfix,hotfix:修复开始到各阶段测试通过修复完成,删除修复分支
原文地址:https://www.cnblogs.com/lijianming180/p/12247739.html