# 版本发布流程规范
## 1\. Git 分支管理
### 1.1 分支定义
* `master`**主分支**
`master`分支的代码必须跟生产环境的代码完全一致, 这个分支只能从`release`分支合并,不能在这个分支直接修改。
每次新建`fixbug-*`分支或`feature-*`分支,必须从最新的`master`分支上创建。每次`master`代码更新要附加`Tag`。
* `release-*`**预发布分支**
预发布分支是从 Dev 分支上面分出来的,预发布结束以后,必须合并进`develop`和`master`分支。
预发布用于本次迭代任务发布,用于合并通过测试的`develop`分支。此分支目的用于汇总当期发版的分支及代码 review。
* `develop`**开发分支**
提测用的分支,`fixbug-*`分支或`feature-*`分支 开发完后把分支推到远程,然后合并到`develop`分支,代码自动提交到测试服务器进行测试。
* `feature-*`**功能分支**
开发某种特定功能,从`Master`分支上面分出来的。开发完成后,要再并入`Develop`。可以采用`feature-*`的形式命名。
* `fixbug-*`**修复分支**
修补`bug分支`是从`Master`分支上面分出来的。修补结束以后,再合并进`master`和`develop`分支。它的命名,可以采用`fixbug-*`的形式。
### 1.2 develop 开发分支示例
创建开发分支
* `git checkout -b develop master`
develop 分支合并到 master 分支
* `git checkout master`
* `git merge --no-ff develop`
### 1.3 feature 功能分支示例
创建功能分支
* `git checkout -b feature-x develop`
合并功能分支到开发分支
* `git checkout develop`
* `git merge --no-ff feature-x`
删除功能分支
* `git branch -d feature-x`
### 1.3 fixbug 修复 bug 分支示例
创建一个修补 bug 分支
* `git checkout -b fixbug-0.1 master`
修补结束后,合并到 master 分支
* `git checkout master`
* `git merge --no-ff fixbug-0.1`
* `git tag -a 0.1.1`
再合并到 dev 分支
* `git checkout develop`
* `git merge --no-ff fixbug-0.1`
最后,删除”修补 bug 分支”
* `git branch -d fixbug-0.1`
## Reference
* [团队项目的 Git 分支管理规范](https://www.cnblogs.com/spec-dog/p/11043371.html "https://www.cnblogs.com/spec-dog/p/11043371.html")
* [Git 分支命名规范(完)](https://blog.csdn.net/qq_33858250/article/details/81047883 "https://blog.csdn.net/qq_33858250/article/details/81047883")
- 视觉规范
- 色彩
- 文字
- 偏移
- 图标
- 列表组件
- 表单组件
- 详情组件
- 其他组件
- 研发规范
- 编码规范
- 函数式编程
- 纯函数
- 柯里化
- 函数组合
- 函子
- 面向对象编程
- 设计原则
- 单一职责原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则
- 开闭原则
- 迪米特原则
- 组合复用原则
- 设计模式
- 创建型模式
- 工厂模式
- 简单工厂
- 工厂方法
- 抽象工厂
- 单例模式
- 建造者模式
- 原型模式
- 结构型模式
- 适配器模式
- 桥接模式
- 过滤器模式
- 组合模式
- 装饰器模式
- 外观模式
- 享元模式
- 代理模式
- 行为型模式
- 责任链模式
- 命令模式
- 解释器模式
- 迭代器模式
- 中介者模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板模式
- 访问者模式
- 组件设计规范
- 组件文档编写规范
- 版本管理规范