Gitlab操作流程

news2025/3/14 3:06:50

阶段1-构建账户信息

1.1 管理员分配账户

方式1-推荐

企业正常使用gitlab时,一般由项目经理(超级管理员)手动创建开发者账户信息,然后将账户发送给开发者,以便登录使用;

流程如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击创建用户按钮;

创建完用户后,可能指定的邮件地址接收不到账户激活信息,我们只直接添加密码信息:

在这里插入图片描述

方式2-临时开启注册功能自行注册

处于工作量的考虑,对于我们来说,超级管理员也可临时开启登录功能(只有超级管理员才拥有该权限):

操作流程如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击保存更改,普通用户就可以正常注册了;

这样访问http://47.96.143.141:9999/users/sign_in也可注册;

点击注册:

在这里插入图片描述

填写账户信息:

在这里插入图片描述

选择账户的角色:

在这里插入图片描述

点击get started 自动登录进入操作界面:

在这里插入图片描述

选择界面汉化:

在这里插入图片描述

说明:

【1】Gitlab用户在组中有角色权限:Guest、Reporter、Developer、Master、Owner
【2】Gitlab权限管理
	Guest:可以创建issue、发表评论,不能读写版本库,访客;
	Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限,报告者; 可以理解为测试员、产品经理等,一般负责提交issue等;
	Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限,开发者;
	Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限,主要负责对master分支进行维护;
	Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予 这个权限,一般是项目经理;
【3】Gitlab中的组和项目有三种访问权限:Private、Internal、Public
        Private:只有组成员才能看到★★★
        Internal:只要登录的用户就能看到
        Public:所有人都能看到
        开源项目和组一般设置为public

阶段2-添加用户开发组

2.1.构建用户组

构建项目组一般是由项目经理来构建:

注意事项:我们的组名:jrzs_147_g1,格式:项目名称_期_gN

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

2.2. 用户组添加用户

在这里插入图片描述


在这里插入图片描述


阶段3-构建项目

3.1.用户组构建新项目

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

3.2 配置ssh免密登录

配置ssh免密登录(可选项):

  1. 生成秘钥指令:
ssh-keygen -t rsa (3个回车)
  1. 赋值pub公钥,并在gitlab中配置,过程与配置gitee一致:

在这里插入图片描述

在这里插入图片描述

3.3 配置本地仓库开发人员信息

接下来,git init初始化本地git仓库,并设置用户相关信息,这样提交时就会显示对应配置的用户名信息了:

git config user.name 'lisi1'
git config user.email '666@163.com'

开发组长将初始化代码提交到远程仓库,然后构建dev分支:

在这里插入图片描述

在这里插入图片描述

平台构建好dev分支后(也可本地构建dev分支,然后推送到远程),本地需要git fetch刷新分支最新配置;

3.4.设置分支保护

团队开发时为了避免一些重要的开发分支(master)被意外篡改,管理人员需要将这些重要的分支设置分支保护,这样普通开发人员就不能直接将代码进行推送和合并了,需要专门的分支管理人员(开发组长)维护重要分支的提交、合并操作;

设置分支保护流程如下:

在这里插入图片描述


在这里插入图片描述

临时禁用自动持续集成:

在这里插入图片描述

3.5.开发人员开发流程

1)普通开发者代码拉取

构建一个文件夹,然后在文件夹中克隆工程基础代码:

#因为项目的私有的,所以克隆代码时,要制定对应的账户和密码,否则无权限下载;
#格式:git clone http://账号:密码@47.96.143.141:9999/jrzs_142_tmp_g2/jrzs_stock_tmp.git
$ git clone http://lisi2:12345678@47.96.143.141:9999/jrzs_142_tmp_g2/jrzs_stock_tmp.git

然后使用idea打开代码,并设置当前用户信息:

C:\Users\46035\Desktop\lisi2\jrzs_stock_tmp>git config user.name
陆庆辉
C:\Users\46035\Desktop\lisi2\jrzs_stock_tmp>git config user.email
777@163.com

2)检出dev分支

接下来开发人员手动检出远程dev分支:

在这里插入图片描述

在这里插入图片描述

这样本地就会构建一个dev分支!

3)基于dev分支检出功能分支

对于普通开发人员来说,工作都围绕dev分支展开,而实际开发中,为了避免直接污染dev分支,一般开发人员会在dev的基础上checkout出一个功能分支:比如feature_login

在这里插入图片描述

4)合并功能分支到dev分支

在功能分支下开发完毕后,将代码合并到dev分支下:

在这里插入图片描述

在这里插入图片描述

到此,feature_login代码就合并到dev分支下了!

5)推送远程dev

开发人员自测代码无问题后,就可以将代码提交到远程dev分支了:

在这里插入图片描述

说明:开发者推送代码到dev后,一般测试人员会介入,测试ok后,分支管理人员会进行受保护分支的合并工作(在自动化工作流汇中,测试通过后,会自动合并);

3.6.管理员合并代码到master

1) 流程

管理员在合并代码之前,先把最新的dev代码拉去到本地,然后做基本的审查工作:

在这里插入图片描述

在这里插入图片描述

此时本地仓库拉取到了最新的dev代码,代码检查无误后合并到master分支:

在这里插入图片描述

代码合并到master分支后,提交到远程的master分支即可;


2)最终效果

不同的开发人员共同维护master和dev分支,最终提交记录线:

在这里插入图片描述

反例:

在这里插入图片描述

跨域不同的分支 合并代码,容易丢失代码;

3.7.回滚操作

通过revert提交则会产生新的提交记录;

本质上就是在新的提交记录下做了逆向操作,实现回滚;

在这里插入图片描述

获取通过reset回滚时,最新的提交记录不会消失;

在这里插入图片描述

3.8.GIT打TAG

1)打标签概述

当项目开发到一些重要阶段后,会进行软件不同版本的发布部署工作,显然如果不记录下这些重要的历史节点,后期从繁杂的提交流水看中查找会变得非常艰难,所以git提供了为开发节点打标签的功能:

在这里插入图片描述


在这里插入图片描述

2)tag其它

详见:day07-实战\资料\3.项目使用GitLab流程\git打tag规范;

g-klcYQZyQ-1708334617624)]

3.8.GIT打TAG

1)打标签概述

当项目开发到一些重要阶段后,会进行软件不同版本的发布部署工作,显然如果不记录下这些重要的历史节点,后期从繁杂的提交流水看中查找会变得非常艰难,所以git提供了为开发节点打标签的功能:

在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1458411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动驾驶中之定位总结

1 前言2 典型的单个定位方式2.1 基于通信的定位方法2.1.1 GNSS 全球卫星导航系统2.1.1.1 gnss的优点与缺点2.1.1.2 gnss定位技术2.1.1.2.1 RTK定位技术2.1.1.2.2 PPP定位技术 2.1.1.2 gnss定位技术总结 2.1.2 车联网定位 2.1 基于航位推算的定位方法2.1.1 惯性测试单元定位IMU2…

docker安装一系列镜像

启动docker systemctl start docker docker 启动已经停止的容器 docker start idOrName PS:idOrName为容器的id或者名称 1、安装mysql镜像 拉取mysql5.7的镜像 docker pull mysql:5.7 查看镜像 docker images 启动mysql #启动mysql docker run --name mysql…

PostgreSQL技术内幕(十三)探究MPP数据库分布式查询分发Dispatcher

Dispatcher(分布式查询分发器)是MPP数据库的核心组件,所有的查询任务都要经过其进行分发,起着沟通用户到协调者(Coordinator,即QD)和执行调度的关键作用。 在这次的直播中,我们为大…

Opencv中的RNG-随机绘图

在OpenCV中,RNG是一个随机数生成器类,用于生成各种类型的随机数,包括均匀分布或高斯分布的整数和浮点数。RNG类的实例化时可以接受一个无符号整数作为种子值,这个种子值决定了随机数生成序列的起点,相同的种子值将产生…

分布式id实战

目录 常用方式 特征 潜在问题 信息安全 高性能 UUID 雪花算法 数据库生成 美团Leaf方案 Leaf-segment 数据库方案 Leaf-snowflake 方案 常用方式 uuid雪花算法数据库主键 特征 全局唯一趋势递增信息安全 潜在问题 信息安全 如果id连续递增, 容易被爬虫, 批量下…

【动态规划】【字符串】2167移除所有载有违禁货物车厢所需的最少时间

作者推荐 【深度优先搜索】【树】【有向图】【推荐】685. 冗余连接 II 本文涉及知识点 动态规划汇总 LeetCode2167移除所有载有违禁货物车厢所需的最少时间 给你一个下标从 0 开始的二进制字符串 s ,表示一个列车车厢序列。s[i] ‘0’ 表示第 i 节车厢 不 含违…

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码)

自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类 文章目录 LTDMC.dll下载LTDMC.cs LTDMC.dll C#调用封装下载ICard.cs 运动控制卡接口Card.cs 运动控制卡抽象类CardLTDMC.cs 雷赛运动控制卡EtherCAT总线卡实现类CardList.cs 总线卡列表封装 LTDMC.dll下载 最新…

MLP-Mixer: AN all MLP Architecture for Vision

发表于NeurIPS 2021, 由Google Research, Brain Team发表。 Mixer Architecture Introduction 当前的深度视觉结构包含融合特征(mix features)的层:(i)在一个给定的空间位置融合。(ii)在不同的空间位置,或者一次融合所有。在CNN中,(ii) 是由N x N(N &g…

golangci-lint如何关闭typecheck

https://github.com/golangci/golangci-lint/issues/2912 typecheck是go源码的校验,无法通过.golangci.yml配置关闭 可以直接在golangci-lint源码层面关闭typecheck

Jmeter教程-JMeter 环境安装及配置

Jmeter教程 JMeter 环境安装及配置 在使用 JMeter 之前,需要配置相应的环境,包括安装 JDK 和获取 JMeter ZIP 包。 安装JDK 1.JDK下载 示例环境为Windows11环境,读者应根据实际环境下载JDK的安装包。 JDK下载地址: Java21 下载 …

windows自带录屏指南,让视频制作更简单!

随着网络技术的发展,录制电脑屏幕已成为了许多用户的常见需求,无论是录制游戏画面、软件教程还是制作演示视频,一款好用的录屏工具都至关重要。windows操作系统为用户提供了多种录屏工具,无需额外安装软件。本篇文章将介绍windows…

Guitar Pro 8.1 Mac 2024最新下载、安装、激活、换机图文教程

Guitar Pro 8是吉他手的终极工具箱,也是阅读和编辑乐谱的领先软件。26 年来,Guitar Pro 一直在帮助世界各地的音乐家学习弹吉他、创作歌曲以及转录和编辑歌集。 Guitar Pro是一款专业的吉他制谱软件,现在已更新至Guitar Pro8,新增了支持添加音频轨道、支…

19-树-填充每个节点的下一个右侧节点指针 II

这是树的第19篇算法,力扣链接。 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。…

从入门到精通:AI绘画与修图实战指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在这篇文章中,我们将深入探讨如何利…

JAVA高并发——人手一支笔:ThreadLocal

文章目录 1、ThreadLocal的简单使用2、ThreadLocal的实现原理3、对性能有何帮助4、线程私有的随机数发生器ThreadLocalRandom4.1、反射的高效替代方案4.2、随机数种子4.3、探针Probe的作用 除了控制资源的访问,我们还可以通过增加资源来保证所有对象的线程安全。比如…

2024年数学建模竞赛汇总——时间轴

美赛已过,好多小伙伴表示已经错过,不清楚什么时候报名,什么时候准备,其实每年数学建模比赛有很多个,各大比赛的级别、报名时间、参赛对象等要求什么呢?小编从竞赛说明、竞赛级别、是否允许跨校、报名费用、…

MySQL基础学习

MySQL基础 注意:本文的图片截图自尚硅谷MySQL笔记。 一:基本概述: 什么是数据库: 数据库是一种用来存储和管理数据的系统。它是一个组织化的数据集合,可以通过计算机系统进行访问、管理和更新。数据库可以存储各种…

【C++】vector模拟实现+迭代器失效

vector模拟实现 成员变量定义默认成员函数构造函数 迭代器范围for、对象类型匹配原则 容量操作sizeemptycapacityreserve成员变量未更新memcpy值拷贝 resize内置类型的构造函数 数据访问frontbackoperator[ ] 数据修改操作push_backpop_backswapclearinsertpos位置未更新无返回…

Atcoder ABC340 C - Divide and Divide

Divide and Divide(分而治之) 时间限制:2s 内存限制:1024MB 【原题地址】 所有图片源自Atcoder,题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例…

Unity2023.1.19没有PBR Graph?

Unity2023.1.19没有PBR Graph? 关于Unity2023.1.19没有PBR graph的说法,我没看见管方给出的答案,百度则提到了Unity2020版之后Shader Graph的“全新更新”,之前也没太注意版本的区别,以后项目尽量都留心一下。 之前文章说过,孪生智慧项目推荐使用URP渲染管线,以上的截…