Git 管理员审批开发主管的申请,审批如下具体信息:git
若审批经过,则 Git 管理员完成如下任务:bash
开发主管从 Gitlab 中克隆远程仓库架构
命令示例:并发
git clone <仓库地址>
开发主管提交代码初始版本到 master 分支,并推送至 Gitlab 系统测试
开发主管在 Gitlab 系统中设置 master 分支为 Protectd 分支(保护分支)Protected 分支不容许 Developer 推送代码,但 Master 能够推送代码优化
命令示例:spa
# 提交本地修改: git add . git commit –m “提交日志” # 推送 master 分支: git push origin master
开发主管在 master 分支上建立 develop 分支(开发分支),并推送至 Gitlab 系统 master 3d
master 分支与 develop 分支同样,有且仅有一个日志
命令示例:code
# 从 master 分支上建立 develop 分支: git checkout –b develop master # 推送 develop 分支: git push origin develop
开发人员在 develop 分支上实现新功能,包括:新特性与 Bug 修复
命令示例:
# 切换到 develop 分支: git checkout develop # 提交本地修改: git add . git commit –m “提交日志” # 推送 develop 分支: git push origin develop
若存在多个新特性能够并行开发,则开发主管可建立一个或多个 feature 分支(特性分支),命名规范:feature-分支建立日期-新特性关键字
,例如:feature-20190919-i18n
当新特性开发完毕后,开发主管需将 feature 分支合并到 develop 分支,最后需删除 feature 分支
命令示例:
# 从 develop 分支上建立 feature 分支: git checkout –b feature-20190919-i18n develop # 合并 feature 分支到 develop 分支: git checkout develop git merge --no-ff feature # 删除本地 feature 分支: git branch –d feature-20190919-i18n # 删除远程 feature 分支: git push origin :feature-20190919-i18n
推荐使用 feature 分支,但 feature 分支的生命周期不能跨一次迭代
开发主管需完成如下任务:
release-分支建立日期-待发布版本号
,例如:release-20190919-v1.0.0
部署时查看当前版本号),最后在 release 分支上作一次提交
命令示例:
# 从 develop 分支上建立 release 分支: git checkout –b release-20190919-v1.0.0 develop
开发人员在 release 分支上修复测试人员提交给本身的 Bug
只容许在 release 分支上修复 Bug,不容许提交任何新特性,开发主管需全程监管
命令示例:
# 切换到 release 分支: git checkout release-20190919-v1.0.0 # 提交本地修改: git add . git commit –m “提交日志” # 推送 release 分支: git push origin release-20190919-v1.0.0
测试主管需完成如下任务:
开发主管需完成如下任务:
开发主管需完成如下任务:
请找 Git 管理员获取】
命令示例:
# 合并 release 分支到 master 分支: git checkout master git merge --no-ff release-20190919-v1.0.0 # 合并 release 分支到 develop 分支: git checkout develop git merge --no-ff release-20190919-v1.0.0 # 在 master 分支上建立标签: git tag tag-20190919-v1.0.0 # 删除本地 release 分支: git branch –d release-20190919-v1.0.0 # 删除远程 release 分支: git push origin :release-20190919-v1.0.0
发布版本号,例如:hotfix-20190919-v1.0.1
hotfix 分支上作一次提交
命令示例:
# 从某个标签上建立 hotfix 分支: git branch hotfix-20190919-v1.0.1 tag-20190919-v1.0.0
开发主管需完成如下任务:
开发主管需完成如下任务:
请找 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
好比:如今 master 分支已经发布了 2.0.0 版本(代码结构发生了很大的变化),但线上发现了一个 1.0.0 版 本的 Bug,当修改了 Bug后,是没法再合并到 master 与 develop 分支的,开发主管需完成如下任务:
当须要对某项目进行定制化时,可从源项目的 Git 仓库 fork 出一个新的 Git 仓库:
当 fork 后,对 repo1 作出的任何修改,都不会影响到 repo2
在 repo2 中修复了 Bug,可经过 Merge Request 的方式提交给 repo1
在 repo2 中可随时拉取 repo1 中的提交,但 repo1 不能拉取 repo2 中的提交
格式:Major.Minor.Micro
版本 | 说明 |
---|---|
Major 版本 | 架构调整 |
Minor 版本 | 新特性 |
Micro 版本 | Bug 修复、优化 |
分支 | 用途 |
---|---|
master 分支(主分支) | 稳定版本 |
develop 分支(开发分支) | 最新版本 |
release 分支(发布分支) | 发布新版本 |
hotfix 分支(热修复分支) | 修复线上 Bug |
feature 分支(特性分支) | 实现新特性 |
Gitlab 角色 | 项目角色 |
---|---|
Owner(拥有者) | Git 管理员 |
Master(管理员) | 开发主管 |
Developer(开发者) | 开发人员 |
Reporter(报告者) | 测试人员 |
Guest(观察者) | 其余人员 |
Git 管理员 | 开发主管 |
---|---|
建立 Git 仓库 | 管理项目分支 |
检查 Git 分支规范 | 成员管理 |
维护 Gitlab 系统 | 管理标签 |
来源:Git分支管理规范