版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

Image RemovedImage Added

...

服务端 开发正向流程:

阶段

开发导向流程:




阶段说明

阶段说明

Git操作及补充说明

开发阶段

需求确认时间点

本地环境

本地环境(Local)

feature/x

分支

开发接到需求,按功能独立建立分支,自行编码及本地测试

开发环境

  1. git pull,确保 develop 分支已和仓库同步最新
  2. git flow start feature x
  • 开启后在此分支完成相关功能的编写及提交 git commit
  • 如需协同开发,请push当前分支到仓库,另一方git fetch 后 git switch feature/x 并在此分支开发,双方应负责各自模块的编写并及时push和pull这一分支的代码,以便快速获取依赖的模块代码,并避免造成很多的冲突文件

开发环境(Dev)

feature/x

分支

  1. 当开发的功能需要远程调用,如支付回调,切到此环境,此时不宜长期占用
  2. 当开发功能完成时,前端需要对接后端接口,此时dev环境其它分支让出,供前端对接开发,同时后端可在此修复或调整功能,以便前端对接

本地操作:

  1. git push,确保本地的当前分支和最新的代码推送到仓库

Dev服务器项目文件根目录下操作:

  1. git fetch,同步仓库新增的分支
  2. git switch feature/x 切换到目标分支
  3. git pull,拉取并部署此分支最新的代码
  • 如需要前端对接,此时应说明该功能所在的服务器环境为dev,以便前端正确对接
  • 可以根据对接情况继续修复或调整部分功能,本地push, dev pull来修正代码


测试阶段

提测时间点

测试环境

测试环境(Test)

release/x.x.x

分支

  1. 当前端后主要功能对接完成,到达指定提测日期,完成所有计划上线的feature/x分支到develop分支,解决冲突问题
  2. 创建release/x.x.x分支并部署到test环境
  3. 协调前端web和app打包测试环境
  4. 测试提出后端bug,后端解决并在测试环境pull解决的代码复测
  5. 测试库1-2轮测试

本地操作:

  1. git pull,确保本地的当前 feature/x 分支代码最新,如有协同工作请另一方完成代码推送
UAT环境
  1. git flow finish feature x,完成功能,如果有多个不同的功能同时需要上线,就完成多个不同的feature/x,有冲突时解决冲突,解决后如果分支还存在则重试完成
  2. git flow start release x.x.x,将刚刚的功能开启release,准备提测

Test服务器项目文件根目录下操作:

  1. git fetch,同步仓库新增的分支
  2. git switch release/x.x.x 切换到目标分支
  3. git pull,拉取并部署此分支最新的代码
  • 确保该功能为本轮可上线功能,且中间不插入其它破坏性功能
  • 如果该服务器已有上轮release在发版阶段,排队等待,先不要急着完成 feature/x 以免在排队过程中插入新的功能,影响计划上线
  • 发布提测说明,声明服务器release待发版本占用,前端打包后开始测试
  • 根据测试情况继续修复或调整部分功能,本地push, test pull来修正代码
  • 1轮测试为主要功能测试,2轮测试为数据核对,通常第2轮测试前需要清除1轮测试产生的垃圾数据
  •  release/x.x.x 在测试期间,应及时合并在这个时间段内发布的补丁内容(补丁发布后,合并master) 避免在最后处理冲突,临时需要复测

UAT环境(UAT)

release/x.x.x

分支

  1. 当主要测试流程结束,上此环境以生产数据拟真测试,并继续修复bug
  2. 生产库1轮测试
  3. 进行上线发布准备工作,如发布文档,迁移脚本校验等

本地操作:

  1. git pull,确保本地的当前release/x.x.x分支代码最新,如有协同工作请另一方完成代码推送
  2. git push,确保本地的当前分支和最新的代码推送到仓库

UAT服务器项目文件根目录下操作:

  1. git fetch,同步仓库新增的分支
  2. git switch release/x.x.x 切换到目标分支
  3. git pull,拉取并部署此分支最新的代码
  • release/x.x.x 在测试期间,应及时合并在这个时间段内发布的补丁内容(补丁发布后,合并master) 避免在最后处理冲突,临时需要复测

投产

上线时间点

生产环境

生产环境(PRD)

x.x.x

Tag

  1. 完成release分支,gitflow会自动tag
  2. 部署tag到生产
  • 完成部署的其它工作
  •  
    1. 完成部署的其它工作,如重启消费者

    本地操作:

    1. git pull,确保本地的当前release/x.x.x 和 master 分支代码最新,如有协同工作请另一方完成代码推送
    2. git flow finish release/x.x.x,完成发布,有冲突时解决冲突,解决后如果分支还存在则重试完成

    Prd服务器项目文件根目录下操作:

    1. git fetch,同步仓库新增的分支
    2. git switch x.x.x 切换到目标Tag 以部署目标版本的代码

    生产反向流程:

    1. 开发中流程中有release冲突时,插入小功能
    2. 修复及测试
    阶段


    阶段说明Git操作及补充说明

    验证

    开发

    本地环境

    本地环境(Local)

    hotfix/x.x.x

    分支

    本地开发及测试

    开发环境

    1. git pull,确保 master 分支已和仓库同步最新
    2. git flow start hotfix x.x.x
    • 开启后在此分支完成相关功能的修复及编写 git commit
    • 如需协同开发,请push当前分支到仓库,另一方git fetch 后 git switch hotfix/x.x.x 并在此分支开发,双方应负责各自模块的编写并及时push和pull这一分支的代码,以便快速获取依赖的模块代码,并避免造成很多的冲突文件

     

    测试阶段

    开发环境(Dev)

    hotfix/x.x.x

    分支

    协商

    测试阶段

    测试环境

    测试应尽可能的测试环境验证可重现的错误,确认修复有效

    本地操作:

    1. git push,确保本地的当前分支和最新的代码推送到仓库

    Dev服务器项目文件根目录下操作:

    1. git fetch,同步仓库新增的分支
    2. git switch hotfix/x.x.x 切换到目标分支
    3. git pull,拉取并部署此分支最新的代码

    测试环境(Test)

    hotfix/x.x.x

    分支

    协商

    测试应尽可能的测试环境验证可重现的错误,确认修复有效

    本地操作:

    1. git push,确保本地的当前分支和最新的代码推送到仓库

    Test服务器项目文件根目录下操作:

    1. git fetch,同步仓库新增的分支
    2. git switch hotfix/x.x.x 切换到目标分支
    3. git pull,拉取并部署此分支最新的代码

    UAT

    环境

    环境(UAT)

    hotfix/x.x.x

    分支

    协商

    测试应尽可能的测试环境验证可重现的错误,确认修复有效

    本地操作:

    1. git push,确保本地的当前分支和最新的代码推送到仓库

    UAT服务器项目文件根目录下操作:

    1. git fetch,同步仓库新增的分支
    2. git switch hotfix/x.x.x 切换到目标分支
    3. git pull,拉取并部署此分支最新的代码

    投产

    生产环境

    生产环境(PRD)

    x.x.x

    Tag

    1. 完成hotfix分支,gitflow会自动tag
    2. 部署tag到生产
    完成部署的其它工作
    1. 完成部署的其它工作,如重启消费者

    本地操作:

    1. git pull,确保本地的当前hofix/x.x.x 和 master 分支代码最新,如有协同工作请另一方完成代码推送
    2. git flow finish hotfix/x.x.x,完成修复,有冲突时解决冲突,解决后如果分支还存在则重试完成

    Prd服务器项目文件根目录下操作:

    1. git fetch,同步仓库新增的分支
    2. git switch x.x.x 切换到目标Tag,以部署目标版本的代码