1.1 分支类型及角色
master分支(主分支) 稳定版本
develop分支(开发分支) 最新版本
release分支(发布分支) 发布新版本
hotfix分支(热修复分支)修复线上bug
feature分支(特性分支) 实现新特性
develop-xxx分支 (协作者分支) 基于develop的协作者分支
tag-年月日-版本号 (tag标签) 发布存档
hotfix --------------------------------O---->O---->O------------------->
⬆ Bugfix |
| |
master --O---------------------------->O(1.0.0)---------O(1.0.1)------->
| | |
↓ | |
develop --O-----O-----O---------------->O----------------O-------------->
Feature+Bugfix | |
↓ |
release --------------O-----O-----O------------------------------------->
Bugfix
1.2 开发新功能模块(新特性)流程
// 1. 切换分支
$ git checkout develop
// 2. 创建新特性(如:用户管理)
$ git checkout -b feature-20211023-user_manage develop
$ git push origin feature-20211023-user_manage
// 3. 开发完成并测试功能完整性后(合并feature分支到develop分支)
$ git checkout develop
$ git merge --no-ff feature-20211023-user_manage
// 3. 删除本地/远程feature分支
$ git branch -d feature-20211023-user_manage
$ git push origin :feature-20211023-user_manage
1.3 发布新版本
$ git checkout develop
$ git checkout -b release-20211023-v0.0.1
$ git push origin release-20211023-v0.0.1
$ git checkout master
$ git merge --no-ff release-20211023-v0.0.1
$ git tag tag-20211023-v0.0.1
$ git push origin tag-20211023-v0.0.1
$ git branch -d release-20211023-v0.0.1
$ git push origin :release-20211023-v0.0.1
$ git tag -d tag-20211023-v0.0.1
1.4 问题修复(线上:hotfix / 预发版(或本地测试):bugfix)
1.4.1 线上 - hotfix分支
// 1. 基于已发布的tag标签(分支)创建hotfix修复分支(可更新版本号,如:v0.0.1 -> v0.0.2)
$ git branch hotfix-20211023-v0.0.2 tag-20211023-v0.0.1
$ git push origin hotfix-20211023-v0.0.2
未完待续...
1.4.2 预发版(或本地测试) - bugfix分支
$ git checkout -b bugfix-20211023-v0.0.2 release-20211023-v0.0.1
$ git push origin bugfix-20211023-v0.0.2
$ git checkout release-20211023-v0.0.1
$ git merge --no-ff bugfix-20211023-v0.0.2
未完待续...
1.5 提交规范
# 1. 自动化提交规范
$ npm install -g commitizen
$ commitizen init cz-conventional-changelog --save --save-exact
$ git add .
$ git cz
$ git log
# 2. 设置git commit模板 (如果已使用自动化提交规范,则忽略)
.git_template内容:
<新功能|修复bug|文档|样式>[界面优化]:修改主题样式
description
git config commit.template .git_template
git add .
git commit
# 4. 制定适合我们的<git commit>提交规范
type: description
如: <fix>修改:未知bug
fix: 修复bug
add: 新功能
update: 更新
style : 代码格式改变
test: 增加测试代码
revert: 撤销上一次的commit
build: 构建工具或构建过程等的变动,如:gulp 换成了 webpack,webpack 升级等
推荐以动词开头,如: 设置、修改、增加、删减、撤销等