零、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. Python 的 sum():Pythonic 的求和方法

    摘要:Python 的内置函数sum()是一种对数值列表求和的有效且Pythonic 的方法.将多个数字相加是许多计算中常见的中间步骤,因此sum()对于 Python 程序员来说是一个非常方便的工具 ...

  2. 只需2步,教你在Vue中设置登录验证拦截

    摘要:两步教你在Vue中设置登录验证拦截! 本文分享自华为云社区<两步教你在Vue中设置登录验证拦截!>,作者: 灰小猿 . 今天在做vue和springboot交互的一个项目的时候,想要 ...

  3. 十大 CI/CD 安全风险(四)

    在上一篇文章,我们着重介绍 PPE 风险,并提供缓解相关风险的安全建议与实践.在本篇文章中,我们将会了解凭据使用环境管理不善与不安全的系统配置,并给出相应的风险缓解建议. 凭据使用管理不善 由于与凭据 ...

  4. vivo 悟空活动中台 - 栅格布局方案

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/6O0CH0U_WE1YkPK75m-jDQ作者:悟空中台研发团队 一.背景 今天来给大家分享 ...

  5. 2021 VDC :vivo 互联网服务亿级用户的技术架构演进之路

    关注公众号[vivo互联网技术]--回复[2021VDC]获取大会PPT. 2021年12月16日,vivo 开发者大会圆满落幕.在互联网技术专场中,来自vivo 互联网技术的6位研发专家,从基础架构 ...

  6. springboot+vue实现 下载服务端返回的文件功能

    开发中会遇到,通过浏览器下载服务器端返回的文件功能,本文使用springboot+vue实现该功能. 后端代码: 注:后端返回的文件名遇到中文就会乱码,一直也没得到很好的解决方案,最后就统一返回1.x ...

  7. C++跨DLL内存所有权问题探幽(三)导致堆问题的可能性

    0xC0000374: 堆已损坏. (参数: 0x00007FFA1E9787F0). _Mem 是 nullptr 这里提供一个可能性,不一定是内存所属地址冲突的问题,除了MT和 MD编译,还有可能 ...

  8. php基础之PHP语言学习介绍

    前言 PHP是网络安全中需要掌握的一门语言,但是就这么一点儿时间学网络安全,所以不可能特别精通PHP,这里并不是说要求你精通PHP,但是需要对于一些基础代码能够认识.能够编写那么就可以了. 同时,这里 ...

  9. 机器学习-决策树系列-GBDT算法-集成学习-30

    目录 1. 复习 2. GBDT 3. gbdt应用于二分类: 3. gbdt应用于多类 4. 叶子节点输出值c的计算 5. GBDT的其他应用 6. GBDT+LR 代码实现 1. 复习 再开始学习 ...

  10. go 接口学习笔记

    这里是对接口在汇编层面上转换和实现的小结,详细了解可参考 Go 语言接口的原理 1. 类型转换:结构体到接口 1.1 结构体方法实现接口 package main type Duck interfac ...