:
git branch hotfix-20190919-v1.0.1 tag-20190919-v1.0.0
第二步:验证 Bug 是否已修复测试主管需完成以下任务:
- 验证 Bug 是否已修复
- 通知开发主管 Bug 已修复【邮件:发送给开发主管,抄送给项目经理】
第三步:创建标签并发布新版本
开发主管需完成以下任务:
- 将 hotfix 分支同时合并到 master 与 develop 分支
- 通过测试主管进行冒烟测试
第四步:发布新版本
开发主管需完成以下任务:
- 修改 master 分支上的 Maven 快照版为发布版(去掉 SNAPSHOT 后缀)
- 添加发布日志(RELEASE.md)
- 在 master 分支上创建标签
- 删除 hotfix 分支
- 打包并上传 Maven 私服
- 通知测试主管新版本已发布完毕【邮件:发送给测试主管,抄送给项目经理与 Git 管理员,邮件格式
请找 Git 管理员获取】
命令示例:
# 合并 hotfix 分支到 master 分支:
git checkout master
git merge --no-ff hotfix-20190919-v1.0.1
# 合并 hotfix 分支到 develop 分支:
git checkout develop
git merge --no-ff hotfix-20190919-v1.0.1
# 在 master 分支上创建标签:
git checkout master
git tag tag-20190919-v1.0.1
# 删除本地 hotfix 分支:
git branch –d hotfix-20190919-v1.0.1
# 删除远程 hotfix 分支:
git push origin :hotfix-20190919-v1.0.1
若无法将 hotfix 分支合并到 master 与 develop 分支时,应该如何发布?
比如:现在 master 分支已经发布了 2.0.0 版本(代码结构发生了很大的变化),但线上发现了一个 1.0.0 版 本的 Bug,当修改了 Bug后,是无法再合并到 master 与 develop 分支的,开发主管需完成以下任务:
- 直接在 hotfix 分支上创建标签
- 删除 hotfix 分支(分支删除了,只要标签还在,版本就可以找得回来)
- 手工修改 develop 分支中的代码(在后续发布时再合并到 master 分支中)
定制化项目
当需要对某项目进行定制化时,可从源项目的 Git 仓库 fork 出一个新的 Git 仓库:
当 fork 后,对 repo1 做出的任何修改,都不会影响到 repo2
在 repo2 中修复了 Bug,可通过 Merge Request 的方式提交给 repo1
在 repo2 中可随时拉取 repo1 中的提交,但 repo1 不能拉取 repo2 中的提交
附录
Maven 版本号命名规范
格式:Major.Minor.Micro
Major 版本 |
架构调整 |
Minor 版本 |
新特性 |
Micro 版本 |
Bug 修复、优化 |
Git 分支类型
master 分支(主分支) |
稳定版本 |
develop 分支(开发分支) |
最新版本 |
release 分支(发布分支) |
发布新版本 |
hotfix 分支(热修复分支) |
修复线上 Bug |
feature 分支(特性分支) |
实现新特性 |
Gitlab 角色与项目角色对应关系
Owner(拥有者) |
Git 管理员 |
Master(管理员) |
开发主管 |
Developer(开发者) |
开发人员 |
Reporter(报告者) |
测试人员 |
Guest(观察者) |
其他人员 |
Git 管理员与开发主管的职责
创建 Git 仓库 |
管理项目分支 |
检查 Git 分支规范 |
成员管理 |
维护 Gitlab 系统 |
管理标签 |
来源:Git分支管理规范