零、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. 火山引擎DataLeap如何解决SLA治理难题(一):应用场景与核心概念介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 基于火山引擎分布式治理的理念,数据平台数据治理团队自研了火山引擎DataLeap SLA保障平台,目前已在字节内部 ...

  2. Python 太难懂?火山引擎数智平台这款产品可以了解一下!

      更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 「自学 Python?一般人我还是劝你算了吧!」 在国内知识分享平台「知乎」上,这一吐槽话题获得了超过 260 ...

  3. 莉莉丝游戏与火山引擎 ByteHouse 达成合作,为实时数仓建设提速

    中国头部游戏公司莉莉丝游戏(Lilith Games)和火山引擎 ByteHouse 达成合作,共同致力于加速莉莉丝游戏的实时数仓建设.此次合作将利用 ByteHouse 的创新技术和功能,为莉莉丝的 ...

  4. 火山引擎 DataLeap 下 Notebook 系列文章三:架构升级详解

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当使用 Notebook 的项目日渐增加时,火山引擎 DataLeap 研发团队发现运行中的 PaaS 服务实在太 ...

  5. 接通率维持 66% 以上,为什么火山引擎 VeDI 能让企业智能外呼不再难?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 智能机器人在企业级市场的应用更加深入了. 随着人工智能技术的进一步发展,包括智能外呼.财务审核.自助客服等在内的智 ...

  6. flask 上传文件,视图

    记得有template ''' 导入flask类.该类的实例将会成为我们的wsgi应用 __name__是一个适用于大多数情况的快捷方式,有了这个参数,flask才能知道在那里找到模板和静态文件等东西 ...

  7. Selenium八大元素定位(元素定位,元素等待)

    Selenium WebDriver查找页面元素及元素操作 元素常用方法定位方法 通过id定位元素:find_element_by_id('id_value') 通过name定位元素:find_ele ...

  8. Go--日志

    一.Logger go语言默认提供的日志功能,包为ttps://golang.org/pkg/log/ 优势: 使用非常简单,可以设置任何io.Writer作为日志记录输出并向其发送要写入的日志 劣势 ...

  9. grep 文本搜索工具

    参考百度百科 1.简介 grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式 ...

  10. Vue3使用vue-video-player组件

    1.安装依赖(亲测5.0.1版本可用,最新版本会找不到'vue-video-player/src/custom-theme.css'这个样式) yarn add  vue-video-player@5 ...