Gitlab 分支管理规范

Gitlab Flow

项目的分支状态为:

  • master:主分支,用于存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版;

  • develop:开发分支,用于日常开发,存放最新的开发版;

  • feat-xxx <feature branch>:功能分支,一旦完成开发,它们就会被合并进develop或master,然后被删除;

  • hotfix-xxx<hotfix branch>:正式环境补丁分支,一旦完成开发,它们就会被合并进develop或master,然后被删除;

  • fix-xxx<fix branch>:开发环境补丁分支,一旦完成开发,它们就会被合并进develop或master,然后被删除;

分支详解

master 主分支

代码库有且仅有一个主分支。提供给用户使用的正式版本,都在这个主分支上发布。每次发布打上Tag标签,如:0.1,0.2 或 0.3。

develop 开发分支

开发人员日常开发与功能测试分支。如果想正式对外发布,需在Master分支上,对Develop分支进行 "合并"(merge)操作。由于Gitlab中默认对Master设置了分支保护(这个设置允许取消,如果存在多人开发的项目,不建议取消),所以,当需要合并到Master的时候需要在Gitlab里提交合并申请由项目管理员合并。

feat-xxx
  • 功能分支属于临时性分支,一般合并完就会删除。它是为了开发某种特定功能,从master分支上面分出来。开发完成后,再并入Develop分支。

  • 功能分支的名字,可以采用feat-xxx的形式命名。

bug分支
  • 项目测试与正式发布之后,难免会出现bug。这时就需要创建一个分支,进行bug修复。

  • bug出现环境不一样,可定义不同的bug分支。

    • 测试环境:从develop上新建分支为fix-xxx;

    • 正式环境:从master上新建分支为hotfix-xxx;

Gitlab分支权限管理

权限类型

GitLib有五种身份权限,分别是:

  • Owner 项目所有者,拥有所有的操作权限

  • Master 项目的管理者,除更改、删除项目元信息外其它操作均可

  • Developer 项目的开发人员,做一些开发工作,对受保护内容无权限

  • Reporter 项目的报告者,只有项目的读权限,可以创建代码片断

  • Guest 项目的游客,只能提交问题和评论内容

分支管理规范

命名规范

分支名称 分支命名 功能介绍
主分支 master 正式环境发布
开发分支 develop 测试与开发环境发布
功能分支 feat-xxx 使用禅道的需求编号(如果对应的需求编号过多,也可以使用拼音缩写)
修复分支 hotfix-xxx 使用禅道的bug工单号,或者根据当前tag版本号增加
修复分支 fix-xxx 使用禅道的bug工单号

提交内容规范

Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。但是,一般来说,commit message 应该清晰明了,说明本次提交的目的。提交规范设置为:" type:subject "

type

用于说明 commit 的类别,只允许使用下面7个标识。

  • feat:新功能(feature)

  • fix:修补bug

  • style: 格式(不影响代码运行的变动)

  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)

  • test:增加测试

subject

subject 是 commit 类型的简短描述,不超过50个字符。

其他注意事项:结尾不加句号(.)

优点
  • 可读性好,清晰,不必深入看代码即可了解当前commit的作用。

  • 为 Code Reviewing做准备

  • 方便跟踪工程历史

  • 让其他的开发者在运行 git blame 的时候想跪谢

  • 提高项目的整体质量,提高个人工程素质

提交分支规范

  • 禁止向主分支直接提交代码,包扩代码仓库在线编辑修改。特殊情况(如版本号变更、CI变更)除外;

  • 禁止提交测试性代码到任何主分支源码(src)目录,测试代码只能存在于测试(test)目录;

  • 禁止任何工作分支跨主分支提交代码,工作分支从只能合并到与工作分支同源的主分支;

  • 禁止在开发过程修改主分支版本号;

  • 必须在代码提交到主分支前删除未使用的import语句和格式化代码。

  • 必须备注每一次提交,代码备注必须简要可读。准确的描述具备可检索性;

  • 必须备注每一次合并请求,对合并请求包含的功能点简要描述。准确的描述具备可检索性。

开发流程管理

迭代开发流程规范

  1. 总体组每周四制定下一迭代版本上线计划并确定迭代开发主分支版本号通知到各中心(组);

  2. 各中心(组)责任人认领确认任务(截止周五),分解任务并下发开发人员,开发在新版本分支上开发;

  3. 各中心(组)在周四前完成基本任务提交到迭代版本主分支交由测试组集成验证;

  4. 测试组在集成测试分支打包测试,bug提交到禅道管理,相关责任人及时认领并修复,同时通知测试组回归测试;

  5. 上线值日人需在每周四下班前确定最终项目版本并归档输出;

  6. 各中心(组)责任人提交最终《数据库变更脚本》、《环境变更脚本》通知到上线值日人;

  7. 各中心(组)责任人提交《程序变更说明》、《上线验证功能列表》到测试组;

  8. 上线值日人需要负责生产环境war包发布和数据库变更;

  9. 测试组依据《上线验证功能列表》验证生产系统发布正确性;

  10. 测试组验证无误依据《程序变更说明》发布上线变更通知。测试不通过通知上线值日人回滚本次发布程序和数据库及环境变更;

  11. 总体组确定延期发布计划;

  12. 延期上线流程参照本章第五条至第十条执行;

  13. 其他时间未经批准禁止发布程序和变更数据库操作

线上Bug修复流程

  1. 以线上版本master主分支为源创建hotfix-xxx的修复分支;

  2. 在hotfix-xxx的修复分支进行集成环境bug修复并向线上版本主分支提交合并请求;

  3. 中心(组)责任人负责代码审核,同意或者拒绝本次合并请求;

  4. 测试组根据最新代码在集成测试环境进行补丁修复验证;

  5. 验证无误后将本次合并请求同时cherry-pick到集成迭代开发主分支;

  6. 发布流程参照【迭代开发流程规范的第五条至第十条执行】;

测试Bug修复流程

  1. 以集成测试主分支为源创建fix-xxx的修复分支;

  2. 在fix-xxx的修复分支进行集成环境Bug修复并向集成测试主分支提交合并请求;

  3. 中心(组)责任人负责代码审核,同意或者拒绝本次合并请求;

  4. 测试组根据最新代码在集成测试环境进行补丁修复验证;

  5. 验证无误后将本次合并请求cherry-pick到迭代开发主分支;

  6. 发布流程参照【迭代开发流程规范的第五条至第十条执行】;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容