Skip to main content

Git 分支使用规范

1. 分支类型

  • 开发分支:命名规范如下:
    1. 简单项目:"开发人员姓名首字母", 如"lcf", 重名时可用全称
    2. 复杂多模块项目:"模块名称_开发人员姓名首字母", 如"system_lcf"
    3. 特殊项目(quickdata, quickend),为”项目名_开发人员姓名首字母“,如”windpower_lcf"
  • 测试环境分支:dev
  • 正式环境分支:master
  • 基础镜像更新分支:image (目前仅前端项目使用)

2. 分支说明

  • 开发分支

    • 创建:一般基于最新dev创建开发分支
    • 合并:开发分支只可以单向合并的dev分支,禁止从dev或者master反向合并到开发分支。合并是使用gitlab的ui,通过发起merger request的形式发送合并请求,然后由项目管理员审核通过后,管理员点击后合并到dev分支
    • 删除:开发分支在通过merge request合并到dev之后,远程的开发分支默认会被删除。此时本地操作有两种方案:
    1. 如果接下来要开发的内容,不依赖于dev别人提交的代码,则本地无需处理,直接在原来的分支上继续开发,提交,合并,流程同上
    2. 如果接下来要开发的内容,需要依赖dev上的最新代码,则在本地工作空间干净的情况下(本地没有修改,或者已提交未push的代码),reset(--hard)到远程dev最新提交记录,然后继续开发,提交,合并 ,流程同上
  • 测试环境分支

    • 合并:dev分支默认只接收来自开发分支的合并请求。同时dev的代码只允许单选合并到master分支
  • 正式环境分支

    • 合并:master分支默认只接收来自dev分支的合并请求。此分支作为正式标准代码版本
  • 基础镜像更新分支

    • 合并:image分支,可以接收来自开发分支或者dev分支的合并请求,一般用户前端代码新增包时,合并到image分支,由image分支自动更新基础镜像

3. 测试环境自动化发布说明

  • 前端项目:

    • 开发分支合并到dev分支,自动发布到测试环境(front-dev--项目名.dev.91weather.com)
    • dev分支合并到master分支,自动发布到正式环境(front--项目名.dev.91weather.com)
  • 算法中台quickdata和数据查询中台quickend

    • 开发分支合并到dev分支,在dev分支打tag(命名规范:”项目名_版本号“,如”windpower_0.0.1“),自动发布到测试环境
    • quickdata:会基于最新的基础镜像启动一个当前项目的agent,目前测试环境每个项目的agent对应一个当前项目的server,目前由管理人员手动创建server
    • quickend: 会基于最新的基础镜像启动一个当前项目的kuzzle地址,服务器nginx配置,自动代理到(kuzzle--项目名.dev.91weather.com),(front-dev--项目名.dev.91weather.com/kuzzle)和(front--项目名.dev.91weather.com/kuzzle)
  • 详细的测试环境自动化发布(ci/cd)说明,详见自动化发布文档。