Git 工作流-基于 x 想 cube 项目实践

Cube Git flow
参考: http://www.ruanyifeng.com/blog/2012/07/git...

流程图

摘要:仓库中包含以下分支

  • master release 用来发布稳定的生产版本
  • develop 大版本开发
  • feature-* 用于新特性的开发
  • bugfix-* bugfix 用于生产环境紧急bug 的修复

主分支 master
首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。

master 是受保护的分支,从develop bugfix- feature- 需要发起Merge Request 进行过Code review 之后才能合并到主分支。

开发分支 develop
日常开发应该在另一条分支上完成,我们把开发用的分支,叫做Develop。

develop 是受保护分支,需要发起Merge Request 进行Code review 之后才能合并

如果想正式对外发布,就在Master分支上,对Develop分支进行"合并"(merge)。

开发分支的push 动作会触发Gitlab CI 编译部署。
对应公众号:魔方测试,测试网址:http://devcube.lenovo.com.cn

功能分支 feature-*
这一种是功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。

功能分支的名字,可以采用feature-*的形式命名。

创建一个功能分支:

git checkout -b feature-x develop

开发完成后,将功能分支合并到develop分支:

git checkout develop
git merge --no-ff feature-x

删除dev分支:

git branch -d feature-x
修补分支 bugfix-*
最后一种是修补bug分支。软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。

修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用bugfix-*的形式。

修复分支提测,Merge Request 到 bugfix 上。

创建一个修补bug分支:

git checkout -b bugfix-jira2018 master

修补测试通过后,合并到master分支:

这一步请通过Gitlab 提交Merge Request,合并人将分支再合并到develop 之后删除分支

bugfix 是受保护分支,需要发起Merge Request 进行Code review 之后才能合并
bugfix 会触发Gitlab CI 编译部署。
对应公众号:24小时,测试网址:http://testcube.lenovo.com.cn

何时做Code Review ?
在向develop bugfix master 提交Merge Request 的时候做Code review,在存在以下问题时会拒绝合并并且给出修改意见:

代码不符合约定的规范
代码有更好的实现方式
边界条件错误
Git hook
前端eslint 代码规范检测
git commit 规范检测
在Cube 项目,写好关键字和简短描述,请勿提交无实际内容的commit msg
简化为

(): 关于git commit 规范检测,参考文档如下: - http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html - https://zhuanlan.zhihu.com/p/34223150

Commit Message 格式

目前规范使用较多的是 Angular 团队的规范, 继而衍生了 Conventional Commits specification. 很多工具也是基于此规范, 它的 message 格式如下:

(): 标题行: 必填, 描述主要修改类型和内容 主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等 页脚注释: 放 Breaking Changes 或 Closed Issues type: commit 的类型 feat: 新特性 fix: 修改问题 refactor: 代码重构 docs: 文档修改 style: 代码格式修改, 注意不是 css 修改 test: 测试用例修改 chore: 其他修改, 比如构建流程, 依赖管理. scope: commit 影响的范围, 比如: route, component, utils, build... subject: commit 的概述, 建议符合 50/72 formatting body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接. 这样一个符合规范的 commit message, 就好像是一份邮件.

转:https://www.zybuluo.com/wh8766/note/1382672

git
本作品采用《CC 协议》,转载必须注明作者和本文链接
陈帅同学
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!