流程基本根据Git-flow标准制订,工具建议使用Sourcetree提供的Git-flow工具,减少手工操作引起的失误:
开发流程
- 根据需求计划(Story)分解功能特性或模块,每个新建一个feature进行开发;
- 耦合较大的功能模块可以放在同一个feature中,不要强行分解;
- 功能模块完成,单元测试与RD自测通过后,尽快合并;
- 当前待发布Story的feature,合并到develop分支;
- 非当前待发布Story的feature,合并到feature/story-xxx;
- 根据QA反馈的bug在develop分支上修改,复杂的改造应该新建feature分支进行修改;
- QA测试通过后,新建release分支发布到online环境;
- online环境运行1天验证没有问题,结束release分支;
维护流程:
- 线上环境发现bug,从master新建hotfix分支;
- 在hotfix分支修正bug,根据bug大小,可以先更新到QA环境测试(手动合并到develop);
- 测试通过发布到线上环境;
- online环境运行1天验证没有问题,结束hotfix分支。
其他:
- 临时需要部署部分feature到QA环境,而这些分支的完成度还未到可以合并到develop的程度,建议从develop新建一个临时分支feature/QA-yyyyMMdd,将需要部署的features合并到此进行部署,测试结束后,根据情况将QA环境回滚到develop分支;
- 尽量不要同时展开多个Story的开发,比较复杂,自定义的流程需要手工执行,没有标准Flow工具支持,容易误操作;
- 配置持续集成环境,让develop、feature/QA-*、release、hotfix分支的推送分别触发QA环境与线上环境的自动部署,减少人工操作步骤;