零、gitlab简介
 
Gitlab是一个成熟的代码管理工具。为企业和组织提供内部的源代码的存储和管理功能。
 
 
 
 
一、gitlab角色总览
 
gitlab中的角色分管理员和使用者,管理员即administrator(root)用户,使用者分创建者(owner)、维护者(maintainer)、开发者(developer)、reporter(不知道怎么翻译才好)、访客(guest)。
 
下表列出了所有使用者所拥有的权限,常规开发中,我们一般仅使用owner、maintainer、developer这三个角色。
权限
Guest
Reporter
Developer
Maintainer
Owner
Create new issues 创建议题
*
*
*
*
*
Leave comments  在线留言
*
*
*
*
*
Pull the project code  拉取代码
 
*
*
*
*
Download a project   下载项目zpi包
 
*
*
*
*
Create code snippets  创建代码片段
 
*
*
*
*
Create new merge requests 提交合并请求
 
 
*
*
*
Push changes to nonprotected branches 向未受保护的分支推送代码
 
 
*
*
*
Remove nonprotected branches  删除未受保护的分支
 
 
*
*
*
Add tags   添加标签
 
 
*
*
*
Write a wiki    写说明
 
 
*
*
*
Manage the issue tracker 管理议题
 
 
*
*
*
Add new team members    添加成员
 
 
 
*
*
Push changes to protected branches  向受保护的分支推送代码
 
 
 
*
*
Manage the branch protection  管理受保护的分支
 
 
 
*
*
Manage Git tags  管理标签
 
 
 
*
*
Edit the project   编辑项目信息
 
 
 
*
*
Add deploy keys to the project   添加项目部署密钥
 
 
 
*
*
Configure the project hooks   配置项目的钩子调用
 
 
 
*
*
 
gitlab名词解释:
  • 项目:项目即代码仓库,一般一个代码仓库对应一个代码工程
  • 受保护分支:“受保护”是相对而言,一般来说,受保护主要体现在以下方面:开发者角色是否可以push代码;开发者角色是否可以对已创建的合并请求操作合并
 
 
二、代码仓库管理思路
 
总体思路:
  • 项目经理承担owner角色,负责创建代码仓库
  • 项目经理酌情指派一名核心开发人员为maintainer角色,负责此代码仓库的日常管理如添加开发者、审核合并请求。目的是为了分担项目经理在代码管理方面的工作,建议不要肆意分配maintainer角色,因为该角色权力太大
  • 项目开发人员分配developer角色,负责代码开发和提交合并请求
  • 仅参与此项目的人员才分配角色,不参与此项目的人员无权查看
 
新项目代码仓库管理流程:
 
  • 项目经理创建代码仓库 
  • 项目经理(或maintanier)添加开发人员
  • 项目经理(或maintanier)基于master分支创建dev分支
  • 开发人员基于dev分支创建feature分支
  • 开发人员克隆gitlab中的仓库到本地
  • 开发人员提交代码到本地仓库
  • 开发人员push本地仓库到远程(gitlab)仓库 
  • 开发人员提交合并请求源分支为feature,目标分支为dev 
  • 项目经理(或maintanier)审核合并请求将多个feature分支代码合并到dev分支 
  • 项目经理(或maintanier)基于dev分支创建test分支
  • 测试人员在test分支上做功能测试
  • 开发人员基于test分支创建fixbug分支修改bug 
  • 开发人员提交合并请求,源分支为fixbug,目标分支为test 
  • 项目测试完毕 
  • 项目经理(或maintanier)创建prod分支做预发布测试
  • 发布完毕,创建tag
  • 项目经理(或maintanier)将prod分支合并到master分支
 
 
老项目迭代开发代码仓库管理流程:
  • 项目经理(或maintanier)基于已有代码仓库创建dev分支
  • 项目经理(或maintanier)添加开发人员
  • 开发人员基于dev分支创建feature分支
  • 开发人员克隆gitlab中的仓库到本地
  • 开发人员提交代码到本地仓库
  • 开发人员push本地仓库到远程(gitlab)仓库 
  • 开发人员提交合并请求,源分支为feature,目标分支为dev 
  • 项目经理(或maintanier)审核合并请求将多个feature分支代码合并到dev分支 
  • 项目经理(或maintanier)基于dev分支创建test分支
  • 测试人员在test分支上做功能测试
  • 开发人员基于test分支创建fixbug分支修改bug 
  • 开发人员提交合并请求,源分支为fixbug,目标分支为test 
  • 项目测试完毕
  • 项目经理(或maintanier)创建prod分支做预发布测试
  • 发布完毕,创建tag
  • 项目经理(或maintanier)将prod分支合并到master分支
 
三、分支管理思路
 
分支种类:
  • master:主分支,是受保护分支,不可直接push
  • dev:开发分支,基本上可以跟着迭代走,每一个迭代一个dev分支,dev分支从master分支创建。是受保护分支,不可直接push
  • feature:特性分支,也即功能开发分支,一般情况下feature和dev分支是如影随形关系。feature从dev分支创建,开发人员在feature分支开发代码,开发完毕提交MergeRequest,拥有合并权限(即maintainer角色)的开发人员(开发组长、项目经理等)完成代码审核(非必须)并合并到dev分支,运维人员在jenkins中构建dev分支,这样开发的功能就部署到开发环境了。
  • test(或者叫release):测试分支,用于部署到测试环境的分支,从dev分支创建,是受保护分支,不可直接push。test分支代码测试完毕,合并到master。
  • fixbug:bug修复分支,用于修改测试过程中测试人员提交的bug,从test分支创建,是修改bug的开发人员工作分支。
  • hotfix://todo
  • prod://todo
 
 
 
  基于实际开发场景,feature分支和fixbug分支为可选项,例如如果本次迭代功能少,周期短,参与人员不超过3个人,完全可以都在dev分支上面开发,在test分支上面改bug,引入feature分支和fixbug分支反而产生了负担。
 
 
分支取名:
  • 分支名包含三部分:分支类型,8位日期,分支描述
  • 8位日期如20211024
  • 分支描述用简洁小写英文单词或者汉语拼英首字母小写,中间用横线隔开
 
例如:feature-20211024-car-management
 
 
 
 
 

Gitlab使用说明的更多相关文章

  1. 持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]

    转载:https://www.abcdocker.com/abcdocker/2065 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkin ...

  2. 一键部署基于GitLab的自托管Git项目仓库

    https://market.azure.cn/Vhd/Show?vhdId=9851&version=11921 产品详情 产品介绍GitLab https://about.gitlab.c ...

  3. Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD

    一.相关介绍 Dockerfile:关于Dockerfile的使用说明,我在文章<让.NetCore程序跑在任何有docker的地方>中有说到,这里不在赘述,需要的可以先看下,本文主要介绍 ...

  4. CentOS8.1中搭建Gitlab服务器

    依旧是写在前面的话♠:很多IT人从业N年也许都还没有亲自搭过一次Gitlab服务器,是不是?有木有?!通常都是背着自己的笔记电脑到一家公司入职,或入职后领到公司分配的电脑,然后分配了Git账号,拿了将 ...

  5. 将 maven repo 部署到 Gitlab

    为什么要将 maven repo 部署到 Gitlab 将 Maven artifacts 放在对应的项目仓库下,而不是专门再去建一个 Maven 仓库.这么做使用起来更方便,更易于管理. 借助 Gi ...

  6. Atitit.项目修改补丁打包工具 使用说明

    Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...

  7. 创建SSH Key连接github或gitlab

    mac下用SoureceTree下载github或gitlab上的项目时,需要进行ssh key验证.每次重装系统啥的都要重新弄,我在csdn上看到一篇不错的文章.转载一下,以后自己找起来也方便. 地 ...

  8. 【补充】Gitlab 部署 CI 持续集成

    上一篇:<劈荆斩棘:Gitlab 部署 CI 持续集成> 上一篇所配置的.gitlab-ci.yml: stages: - build - test before_script: - ec ...

  9. 劈荆斩棘:Gitlab 部署 CI 持续集成

    阅读目录: install configue gitlab-ci-multi-runner restore nuget packages bulid .sln run unit tests confi ...

  10. svn迁移gitlab,构建前端打包发布流程

    前端资源迁移     目前公司的前端资源托管在svn服务器上,由于团队的逐渐扩大,svn的分支管控越来越不灵活,而且对于以后前端流程一体化的处理支持不是很好,因此决定在版本控制上转向git.git的好 ...

随机推荐

  1. 实践GoF的设计模式:访问者模式

    摘要:访问者模式的目的是,解耦数据结构和算法,使得系统能够在不改变现有代码结构的基础上,为对象新增一种新的操作. 本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:访问者模式> ...

  2. 中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装

    摘要:一键"Run in ModelArts",无需考虑计算资源.环境的搭建,简单运行代码,即可拥有你的超级大月亮,打造专属于你的梦幻中秋月夜. 本文分享自华为云社区<中秋节 ...

  3. MRS离线数据分析:通过Flink作业处理OBS数据

    摘要:MRS支持在大数据存储容量大.计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中,使用MRS集群仅做数据计算处理的存算分离模式. 本文分享自华为云社区<[云小课]EI第47课 MR ...

  4. What?构造的查询语句会导致堆栈溢出

    摘要:本文归纳了Neo4j和Nebula两个开源图数据库的两个pull request修复的堆栈溢出问题,并试着写写通过阅读pr中的问题而得到的一些启发 本文分享自华为云社区<巧妙构造的查询语句 ...

  5. ByteHouse技术白皮书正式发布,云数仓核心技术能力首次全面解读(内附下载链接)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布. 在数字化浪潮下,伴随着公有 ...

  6. SocketChannel支持设定参数

    SocketChannel支持设定参数SO_SNDBUF 套接字发送缓冲区大小SO_RCVBUF 套接字接收缓冲区大小SO_KEEPALIVE 保护连接O_REUSEADDR 复用地址SO_LINGE ...

  7. anaconda学习(未完成)

    1.Anaconda安装教程(以32.7.4为例)官网地址:https://www.anaconda.com/download(如无法下载可跳转清华源下载)下载完成后点击打开即可安装点击Next选择I ...

  8. 详解 SSL(二):SSL 证书对网站的好处

    在如今谷歌.百度等互联网巨头强制性要求网站 HTTPS 化的情况下, 网站部署 SSL 证书已然成为互联网的发展趋势.而在上一篇< 详解 SSL(一):网址栏的小绿锁有什么意义?>中,我们 ...

  9. JSP | JSP 动作详解

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本篇学习自:C语言中文网,部分内容转载仅供学习使用. \[QAQ \] JSP 动作利用 XML ...

  10. 云原生 Serverless Database 使用体验

    作者 | 李欣 近十年来互联网技术得到了飞速的发展,越来越多的行业加入到了互联网的矩阵,由此带来了更为丰富且复杂的业务场景需求,这对于数据应用系统的性能无疑是巨大的挑战.​ 关系型数据库 MySQL ...