前言
团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。
一、gitlib介绍
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
gitlab主要用于私用,github主要用于公网,都可看成web版的git
二、分支说明与管理
1.1主分支Master
代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。
Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
1.2开发分支Develop
Develop为开发分支,一般包含正在开发的所有新特性,用于测试环境部署和测试,通常是开发从master上拉取。
1.3预发布分支Release
预发布分支,最终测试版本(公测版),只会有微小改动,通常也是线上的发布分支,待发布线上验证通过后,Release分支才会合并master,Release分支是master的版本快照。
同时遇到特殊需求,比如说需要为特定需求方上一个版本,可以使用特殊命名作为release版本从master分支拉取。
1.4日常修复分支Fixbug
软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。 日常修复分支,修补 bug 分支是从 Master 分支上面分出来的。修补结束以后,再合并进 Master和Dev分支。
1.5特性分支Feature
特性分支,由开发从dev分支拉取,每新增一个模块,拉取一个feature分支,部署验证无误后合并至Dev中。
2.分支命名规则
release_模块名_版本_时间
bugfix_模块名_bug名_时间
feature_模块名_(功能模块)_版本_时间
*当模块无新增功能模块时可不带“功能模块”
三、代码管理流程
四、gitlab角色分配
Guest (访客):
可操作权限:可以创建issue、发表评论。
不可操作权限:不能读写版本库。Reporter(记者):QA、PM可以赋予这个权限
可操作权限:可以克隆代码。
不可操作权限:不能提交。Developer(开发者):RD可以赋予这个权限
可操作权限:可以克隆代码、开发、提交、push。
不可操作权限:不能进行读写版本库。Maintainers(维护者):核心RD负责人可以赋予这个权限
可操作权限:可创建项目、添加tag、保护分支、添加项目成员、编辑项目。
不可操作权限:不能读写版本库。Owner(所有者):(开发组leader可以赋予这个权限)
可设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员。访问权限:
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
五.自动化部署jenkins