loganwz 2019-07-01
目前的就职的公司,虽不是BAT之类,但是直接领导和后端业务团队的领导基本来自阿里和华为,git分支主要有以下:
主分支:master,保证所有已发布到生产环境的分支都已merge到master,并且,新分支比如从master创建
日常分支:daily,本地开发和测试环境使用,保证所有的已上生产和发布测试的分支都已merge到daily
其他分支:版本分支或bug分支,从master拉取,并在merge到master后删除
前端团队采用如下开发流程:
(接到版本需求后,假设不需要后端接口配合,或后端接口已开发完毕)
第一阶段(本地开发+测试环境阶段)
step1:master创建一个新分支featrue-2019-2,此为版本分支,并拉取到本地,使用SwicthHosts将本地开发环境映射到日常环境,也称测试环境,在本地开发调试第二阶段(预发阶段)
step1:merge master 到 featrue-2019-2,保证featrue-2019-2已包含所有的生产代码第三阶段(生产阶段)
step1:此分支发预发后,若有别的分支发了生产,则需要执行merge master 到1、保证master分支是唯一主分支
2、所有版本分支,所有需求,所有代码,必须按“照构建日常——>构建预发——>构建生产”的顺序执行
3、所有版本分支只开发此版本相关内容,不可混合其他版本需求开发
4、分支发布生产后,必须尽快merge到master
5、分支的生命周期,从master上拉取开始,到merge到master以后结束,一个分支尽量只使用一次,即merge到master以后就删除
6、不要频繁发布生产,日常和预发不受限制
以前的公司,只有测试/预发环境和正式/生产环境,来到这家公司后,才了解到预发环境的必要性。
测试环境,用来测试代码没有问题,但是测试环境里都是测试数据,和真实数据差别很大,大家都知道,对于前端来说这些数据的不同会造成特殊情况存在,例如测试环境的数据不合法。
而预发环境则是真实数据,基本上用户在预发环境的所见,99%等同于在生产环境的所见,所以,必要性可想而知。