入职必会-开发环境搭建55-GitLab使用

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文详细介绍了GitLab使用, 包括管理员和普通开发人员的使用

GitLab使用[管理员]

一般这些配置是需要公司的管理员去配置的,初级开发人员是没有这个权限的。

修改显示主题为中文

在主页面左上角用户头像上点击,选择Edit profile,效果如下图:

选择Preferences菜单,滚动到下面的Localization组的Language,效果如下图:

设置语言为Chinese,Simplified-简体中文(98%translated),效果如下图:

点击Save changes保存修改,效果如下图:

修改语言为中文后,需要刷新网页才能看到页面全部修改为中文了,效果如下图:

取消用户自动注册功能

点击管理中心 -> 仪表盘 -> 己启用注册功能 去掉勾选,然后拉到下面点击保存更改,效果如下图:

创建用户

创建用户cxypa01,点击仪表盘 -> 新建用户,效果如下图:

填写用户账号信息,点击创建用户,效果如下图:

创建后点击编辑,效果如下图:

添加用户的密码,效果如下图:

创建组

群组可有理解为企业中的开发小组,每个小组可能负责固定的几个项目。

点击仪表盘 -> 新建群组,效果如下图:

输入相关信息,点击创建群组,效果如下图:

将用户添加到组中

点击群组,点击群组名testGroup,进入之前创建的组中,效果如下图:

点击管理权限,效果如下图:

点击邀请成员,效果如下图:

在邀请成员对话框中输入相关信息,效果如下图:

添加群组成员后,效果如下图:

给用户组创建项目

点击testGroup群组,点击右侧创建新项目,效果如下图:

点击创建空白项目,效果如下图:

创建空白项目中输入项目名称,不要勾选使用自述文件初始化仓库,效果如下图:

完成项目创建,效果如下图:

SSH 协议

GitLab 可以通过 HTTP 的方式可以上传和下载代码,这种方式可以用户的账号和密码。此方式在这里就不过多介绍了,下面将介绍使用 SSH 协议来操作 GitLab 上的项目。

SSH协议概述

SSH 为 Secure Shell (安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Group)所制定。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

基于密匙的安全验证

使用 SSH 协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到 SSH 服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

SSH密钥生成

密钥生成的方式有很多种,常见的JDK的工具或者是GitBash等。本教程使用GitBash。

  1. 鼠标右键打开GitBash客户端,效果如下图:
  2. 在GitBash执行命令,生命公钥和私钥,效果如下图:
ssh-keygen -t rsa

执行命令完成后,在window本地用户.ssh目录(C:\Users\用户名\.ssh中),生成如下名称的公钥和私钥:

SSH密钥配置

密钥生成后需要在GitLab上配置密钥本地才可以顺利访问。

SSH密钥配置操作步骤如下图:

设置成功后, 我们就可以使用SSH的形式上传和下载代码了。

在windows中使用Git Bash命令行测试是否能够使用ssh连接服务器,命令如下:

ssh -T Git@192.168.100.132 -p 1024

效果:

$ ssh -T Git@192.168.100.132 -p 1024
The authenticity of host '[192.168.100.132]:1024 ([192.168.100.132]:1024)' can't be established.
ED25519 key fingerprint is SHA256:yBstIZL6RmVX65G9yUcBjYQET8GuIq0z3gpf2PmhPhU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.100.132]:1024' (ED25519) to the list of known hosts.
Welcome to GitLab, @root!

看到Welcome to GitLab, @root!说明成功了!

上传项目至GitLab[管理员]

使用 IDEA 中把项目上传到 GitLab 中,无需其他的插件。这种方式不仅可以向 GitLab 中上传,也可以向 Gitee 和 Github 中上传。

  1. 点击 VCS,创建本地仓库Create Git Repository

  1. 选择项目的根目录,作为 Git 本地仓库的根资源库。

  1. 向项目的根路径下添加 .gitignore 文件忽略不要Git仓库管理的文件

  1. 选择要提交到本地仓库中的文件
  2. 将项目上传到远程仓库 GitLab 中
    选中项目的根目录,在 Git 菜单栏中选择 Push

  1. 点击 Define remote 在弹出窗口中的 URL 里填写之前的项目地址
    注意:保证远程仓库是一个新的空仓库,否则提交失败。

  1. 点击 Push 进行提交

  1. 检查 Git 中是否已经上传到远端仓库地址中

  1. 远端仓库中上传后项目的内容

以上将自己的项目上传到了 GitLab 组中的项目中,只有本组的人员才可以看到此项目中的内容。

新建和上传分支[管理员]

新建分支

上传分支

模拟新员工到公司[新员工]

模拟新员工到公司,在GitLab上删除之前的SSH秘钥,退出的root用户。

使用新建的用户登录GitLab[开发人员]

第一次登录后会提示修改密码,效果如下图:

SSH密钥生成[新员工]

Git bash 执行下面命令,生成公钥和私钥。

ssh-keygen -t rsa

SSH密钥配置[新员工]

生成密钥后,需要在 GitLab 上配置密钥,本地才可以顺利访问 GitLab。操作如下图:

使用IDEA从GitLab拉取代码[新员工]

在IDEA中关闭项目,回到欢迎界面,选择Get from VCS,效果如下图:

到GitLab上复制项目的地址,

输入GitLab对应项目的地址,选择本地保存项目的路径,点击Clone,效果如下图:

点击Trust Project,效果如下图:

可以看到代码拉取到本地了,效果如下图:

如果使用HTTP协议拉取代码,第一次拉取代码会显示需要输出账号和密码,输入GitLab的账号和密码。

把远程分支拉到本地[新员工]

刚从远程仓库把代码拉取到本地,本地只有一个master分支。需要把远程分支拉取到本地,效果如下图:

点击远程分支名,再选择Checkout,就可以把远程分支拉取到本地,效果如下图:

使用IDEA创建新分支开发[新员工]

假设张三接到了开发订单功能的任务,张三需要创建一个新分支zhangsan_order分支开发订单功能,这样不会影响其他的人开发。当订单功能开发完成后就需要合并到dev分支。

张三创建一个新分支zhangsan_order分支开发订单功能,操作如下图:

zhangsan_order分支提交代码,操作如下图:

张三把订单功能zhangsan_order分支合并到dev分支,操作如下图:

zhangsan_order分支合并到dev分支后的效果:

推送dev分支到远程仓库。

在远程仓库的dev分支可以看到订单功能的代码。

Git开发常见问题

commit前回滚[新员工必会]

假设用户添加了一行代码,但是还没有提交到本地仓库。

在commit窗口中右键选择要回滚的文件,点击Git,再点击Rollback,操作如下图:

回滚后,多添加的但是未提交的代码没有了。

commit后回滚[新员工必会]

commit后回滚有两种方式:Undo CommmitRevert Commit

Undo Commmit:撤销上次提交,保留修改的内容到新的changelist中,Git log中无任何提交信息。

Revert Commit:直接回滚到上个版本,不保留修改的内容,在Git log中会留下上次commit和本次revert的信息。

Undo Commmit操作

在Git log的提交日志上右键,选择Undo Commit,操作如下图:

点击OK

Undo Commmit操作后,在Git log中就没有了这次提交。

但是代码还是存在的,需要Rollback回滚代码,操作如下图:

代码还原了,Git log也没有了,效果如下图:

Revert Commmit操作

先提交测试代码,效果如下图:

在Git log提交日志上右键,选择Revert Commit,操作如下图:

提交的代码撤回了,但是Git log提交日志中多了Revert"commit后回滚测试2!提交",效果如下图:

push后回滚[新员工必会]

假设用户不小心push到了服务器,效果如下图:

在Git log提交日志中,选择要撤回的到的提交日志,右键,点击Reset Current Branch to Here

在弹出窗中选择soft或者hard。

区别:hard彻底回滚,不保留修改的内容。soft回滚到commit前的状态,修改的内容被保留在changelist中。

这里选择Soft,效果如下图:

修改完成之后使用Force Push强制推送到远程仓库,操作如下图:

到远程仓库查看,可以看到,之前的提交被覆盖掉了。

如果IDEA的Force Push按钮不能点击,则使用Git命令强行覆盖远程分支Git push origin 分支名 --force,效果如下:

Git push origin master --force

冲突解决[新员工必会]

两个人在同一个类的同一行添加代码并先后提交到远程仓库。

产生了冲突,解决冲突,操作如下图:

解决冲突后的效果:

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
入职必会-开发环境搭建54-GitLab下载和安装
|
6月前
|
Linux 应用服务中间件 网络安全
linux安装Gitlab
linux安装Gitlab
170 0
|
6月前
|
缓存 数据安全/隐私保护 Docker
安装gitlab
安装gitlab
310 0
|
3月前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
|
2月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
3月前
|
Ubuntu 安全 网络安全
在Ubuntu 16.04上安装和配置GitLab的方法
在Ubuntu 16.04上安装和配置GitLab的方法
72 0
|
3月前
|
存储 Ubuntu 安全
在Ubuntu 18.04上安装和配置GitLab的方法
在Ubuntu 18.04上安装和配置GitLab的方法
66 0
|
3月前
|
缓存 Kubernetes Shell
CI/CD:安装配置Gitlab Runner
CI/CD:安装配置Gitlab Runner
330 0
|
5月前
|
持续交付 开发工具 git
阿里云云效产品使用问题之在云效代码域中gitlab使用docker安装的,迁移时遇到“获取企业信息失败”,是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
数据安全/隐私保护
宝塔安装gitlab
宝塔安装gitlab
160 0

相关实验场景

更多