阶段 | 开发导向流程: |
|
| 阶段说明 | Git操作及补充说明 |
开发阶段 需求确认时间点 | 本地环境(Local) | feature/x | 分支 | 开发接到需求,按功能独立建立分支,自行编码及本地测试 | - git pull,确保develop&master分支已和仓库同步最新
- git flow start feature x
- 开启后在此分支完成相关功能的编写及提交 git commit
- 如需协同开发,请push当前分支到仓库,另一方git fetch 后 git checkout feature/x 并在此分支开发,双方应负责各自模块的编写并及时push和pull这一分支的代码,以便快速获取依赖的模块代码,并避免造成很多的冲突文件
|
开发环境(Dev) | feature/x | 分支 | - 当开发的功能需要远程调用,如支付回调,切到此环境,此时不宜长期占用
- 当开发功能完成时,前端需要对接后端接口,此时dev环境其它分支让出,供前端对接开发,同时后端可在此修复或调整功能,以便前端对接
| 本地操作: - git push,确保本地的当前分支和最新的代码推送到仓库
Dev服务器项目文件根目录下操作: - git fetch,同步仓库新增的分支
- git checkout feature/x 切换到目标分支
- git pull,拉取并部署此分支最新的代码
- 如需要前端对接,此时应说明该功能所在的服务器环境为dev,以便前端正确对接
- 可以根据对接情况继续修复或调整部分功能,本地push, dev pull来修正代码
|
测试阶段 提测时间点 | 测试环境(Test) | release/x.x.x | 分支 | - 当前端后主要功能对接完成,到达指定提测日期,完成所有计划上线的feature/x分支到develop分支,解决冲突问题
- 创建release/x.x.x分支并部署到test环境
- 协调前端web和app打包测试环境
- 测试提出后端bug,后端解决并在测试环境pull解决的代码复测
- 测试库1-2轮测试
| 本地操作: - git pull,确保本地的当前 feature/x 分支代码最新,如有协同工作请另一方完成代码推送
- git flow finish feature x,完成功能,如果有多个不同的功能同时需要上线,就完成多个不同的feature/x,有冲突时解决冲突,解决后如果分支还存在则重试完成
- git flow start release x.x.x,将刚刚的功能开启release,准备提测
Test服务器项目文件根目录下操作: - git fetch,同步仓库新增的分支
- git checkout release/x.x.x 切换到目标分支
- git pull,拉取并部署此分支最新的代码
- 确保该功能为本轮可上线功能,且中间不插入其它破坏性功能
- 如果该服务器已有上轮release在发版阶段,排队等待,先不要急着完成 feature/x 以免在排队过程中插入新的功能,影响计划上线
- 发布提测说明,声明服务器release待发版本占用,前端打包后开始测试
- 根据测试情况继续修复或调整部分功能,本地push, test pull来修正代码
- 1轮测试为主要功能测试,2轮测试为数据核对,通常第2轮测试前需要清除1轮测试产生的垃圾数据
|
UAT环境(UAT) | release/x.x.x | 分支 | - 当主要测试流程结束,上此环境以生产数据拟真测试,并继续修复bug
- 生产库1轮测试
- 进行上线发布准备工作,如发布文档,迁移脚本校验等
| 本地操作: - git pull,确保本地的当前release/x.x.x分支代码最新,如有协同工作请另一方完成代码推送
- git push,确保本地的当前分支和最新的代码推送到仓库
UAT服务器项目文件根目录下操作: - git fetch,同步仓库新增的分支
- git checkout release/x.x.x 切换到目标分支
- git pull,拉取并部署此分支最新的代码
|
投产 上线时间点 | 生产环境(PRD) | x.x.x | Tag | - 完成release分支,gitflow会自动tag
- 部署tag到生产
- 完成部署的其它工作
| 本地操作: - git pull,确保本地的当前release/x.x.x分支代码最新,如有协同工作请另一方完成代码推送
- git flow finish release/x.x.x,完成发布,有冲突时解决冲突,解决后如果分支还存在则重试完成
UAT服务器项目文件根目录下操作: - git fetch,同步仓库新增的分支
- git checkout release/x.x.x 切换到目标分支
- git pull,拉取并部署此分支最新的代码
|
|
|
|
|
|
|
| 生产反向流程: |
|
| - 开发中流程中有release冲突时,插入小功能
- 修复及测试
|
|
验证 开发 | 本地环境(Local) | hotfix/x.x.x | 分支 | 本地开发及测试 |
|
开发环境(Dev) | hotfix/x.x.x | 分支 | 协商 |
|
测试阶段 | 测试环境(Test) | hotfix/x.x.x | 分支 | 协商 |
|
UAT环境(UAT) | hotfix/x.x.x | 分支 | 协商 |
|
投产 | 生产环境(PRD) | x.x.x | Tag | - 完成hotfix分支,gitflow会自动tag
- 部署tag到生产
- 完成部署的其它工作
|
|