GitLab的安装及使用教程(超级详细)

时间:2024-10-20 16:05:22

GitLab基本介绍

GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。

它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

本篇教程将教你如何安装部署及使用GitLab。

Git的家族成员

Git:是一种版本控制系统,是一个命令,是一种工具。

Gitlib:是用于实现Git功能的开发库。

Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。

GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。

Gitlab的服务构成

Nginx:静态web服务器。

gitlab-shell:用于处理Git命令和修改authorized keys列表。

gitlab-workhorse: 轻量级的反向代理服务器。

logrotate:日志文件管理工具。

postgresql:数据库。

redis:缓存数据库。

sidekiq:用于在后台执行队列任务(异步执行)。

unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。

GitLab工作流程

GitLab的安装及使用教程

GitLab Shell

GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表。

当通过SSH访问GitLab Server时,GitLab Shell会:

  • 限制执行预定义好的Git命令(git push, git pull, git annex)
  • 调用GitLab Rails API 检查权限
  • 执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
  • 执行你请求的动作 处理GitLab的post-receive动作
  • 处理自定义的post-receive动作

当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码。

如果你是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作;

如果你是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:

  1. 调用GitLab Rails API 检查权限
  2. 执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
  3. 执行你请求的动作
  4. 处理GitLab的post-receive动作
  5. 处理自定义的post-receive动作

GitLab Workhorse

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

Gitlab环境部署

ECS配置要求:内存2G以上

方法一:镜像部署

点击购买,免费获得GitLab全套环境镜像。(点击查看:镜像帮助文档

GitLab代码管理(Centos 64位 | GitLab)

进入镜像详情页面,单击立即购买,按提示步骤购买 ECS 实例。

购买完成之后,登录“ECS 管理控制台”,在左边导航栏里,单击“实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在“IP 地址”列获取该实例的公网 IP 地址。

注意:镜像部署好后默认是禁止远端访问的,所以直接访问ECS服务器的公网IP是不能访问到GitLab的登录界面的,请先运行**/alidata目录下的gitlab_opennet.sh**脚本,开启远程访问,然后再通过浏览器访问公网IP来访问GitLab的主页。

方法二:手动部署:

一、离线安装
1、下载自己使用系统的安装包 地址gitlab安装包
2、在线下载特别慢,我提供了CentOS 7的ce的安装包13和16的版本gitlab-ce-16.6.8-ce.0.el7.x86_64.rpm百度云盘的地址
需要其他的版本可以留言,我添加。
3、这个安装方式就简单了,直接使用linux命令安装

rpm -ivh gitlab-jh-15.3.1-jh.0.el7.x86_64.rpm

二、在线安装

1、配置yum源

vim /etc//
[gitlab-ce]



name=gitlab-ce


baseurl=/gitlab-ce/yum/el7

gpgcheck=0

Repo_gpgcheck=0


Enabled=1


Gpgkey=/

1.1 执行安装

sudo yum install gitlab-ce -y

2、更新本地yum缓存

sudo yum makecache

GitLab的安装及使用教程

3、安装GitLab社区版

sudo yum install gitlab-ce        #自动安装最新版



sudo yum install     #安装指定版本

GitLab的安装及使用教程

GitLab常用命令

sudo gitlab-ctl start    # 启动所有 gitlab 组件;



sudo gitlab-ctl stop        # 停止所有 gitlab 组件;



sudo gitlab-ctl restart        # 重启所有 gitlab 组件;



sudo gitlab-ctl status        # 查看服务状态;



sudo gitlab-ctl reconfigure        # 启动服务;



sudo vim /etc/gitlab/        # 修改默认的配置文件;



gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;



sudo gitlab-ctl tail        # 查看日志;

GitLab使用

登录GitLab

1、在浏览器的地址栏中输入ECS服务器的公网IP即可登录GitLab的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。

GitLab的安装及使用教程

2、首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。

创建Project

1、安装Git工具linux:安装Git,使用自带的源安装。

yum install git

GitLab的安装及使用教程

2、生成密钥文件:使用ssh-keygen生成密钥文件**.ssh/id_rsa.pub**。

GitLab的安装及使用教程

GitLab的安装及使用教程

3.在GitLab的主页中新建一个Project

GitLab的安装及使用教程

GitLab的安装及使用教程

4.添加ssh key导入步骤2中生成的密钥文件内容:

GitLab的安装及使用教程

GitLab的安装及使用教程

ssh key添加完成:

GitLab的安装及使用教程

项目地址,该地址在进行clone操作时需要用到:

GitLab的安装及使用教程

简单配置

1、配置使用Git仓库的人员姓名

git config --global  "gitlab" 
git config --global  "support@" 

git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/

上传文件

1、进入到项目目录

cd test/ 
echo “test” >  /root/
cp /root/ ./  

GitLab的安装及使用教程

4、将文件加入到索引中

git add  
git commit -m “”
git push -u origin master 

GitLab的安装及使用教程

7、在网页中查看上传的文件已经同步到GitLab中

操作详细记录

目录

一、基本操作
1.登录:
2.修改密码:
二、项目管理
1.新建项目
2.编辑或删除项目
三、用户管理(管理员使用,非管理员跳过此步骤)
1.新建用户
2.编辑和删除用户
四、组管理(管理员使用,非管理员跳过此步骤)
1.新建组
2.编辑或删除组
3.添加组成员
4.修改成员的权限(owner用户操作)
5.从组管理添加项目
五、权限说明

一、基本操作

1.登录:

在浏览器地址栏输入http://127.0.0.1 (自己的ip地址)回车,进入登陆界面。

img

在上图红框区域登陆自己的账户密码。

2.修改密码:

登录成功后点击左侧工具栏目Profile Settings ------ Password -------修改密码-------Save password。

Tips:

点击GitLab的logo,可以从任何界面回到本页

img

img

二、项目管理

可以根据需要选择新建项目、新建组合新建用户

1.新建项目

如下图所示新建项目:

img

创建时可以选择在自己用户下创建或者某个群组内创建

img

img

a. 项目名称,项目名称可以为字母、数字、空格、下划线、中划线和英文点号组

成,且必须以字母或数字开头,不能使用中文

b. 项目描述

c.可见性(库类别)

私有库:只有被赋予权限的用户可见

内部库:登录用户可以下载

公开库:所有人可以下载

根据实际情况填写完各项之后,点击创建项目,项目创建成功

img

提示通过SSH方式拉取推送项目代码必须要导入SSH key,这个稍后再介绍。

项目地址有HTTP和SSH两种方式-------可发送给开发人员下载和初始化项目

2.编辑或删除项目

img

主页左边菜单栏--------Project

img

右上角的齿轮状按钮--------编辑项目

img

右下角删除项目。

或者点击Admin Area

img

三、用户管理(管理员使用,非管理员跳过此步骤)

1.新建用户

点击顶端的Admin Area按钮

img

可以进入管理页面

img

  1. 姓名(可以是中文)

  2. 用户名(可以为字母、数字、空格、下划线、中划线和英文点号组成,且必须以字母或数字开头,不能使用中文)

  3. 邮箱地址(首次接收密码)

  4. 建项目的数量限制

  5. 是否可以创建组

  6. 是否是管理员

  7. 选填内容(个人联系方式)

2.编辑和删除用户

img

四、组管理(管理员使用,非管理员跳过此步骤)

1.新建组

菜单栏Group------New Group

img

img

1). 组名称,组名称可以为字母、数字、空格、下划线、中划线和英文点号组成,

且必须以字母或数字开头,不能使用中文

2). 组详情

2.编辑或删除组

imgimg

img

在此页面可以编辑和删除组

3.添加组成员

img

img

添加组用户并赋予相应的权限。

img

4.修改成员的权限(owner用户操作)

点击左侧的Groups,然后点击当然的组。

img

img

然后点击左侧Members菜单进入。

img

img

修改想要修改的用户的权限并save

img

5.从组管理添加项目

从组里添加项目可免去再添加项目用户的步骤,因此我们选择从组内添加工程。

点击左侧Group,然后点击齿轮按钮。

img

然后点击Project,接着点New Project

img

img

按步骤填写最后点击Create Project创建项目。

此时组内成员都能看到这个项目已经被创建。

五、权限说明

Guest(匿名用户) - 创建项目、写留言薄

Reporter(报告人)- 创建项目、写留言薄、拉项目、下载项目、创建代码片

Developer(开发者)- 创建项目、写留言薄、拉项目、下载项目、创建代码

片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

支 、创建标签、编写wiki

Master(管理者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片

段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

支 、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护

的分支、编辑项目、添加部署密钥、配置项目钩子

Owner(所有者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片

段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

支 、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护

的分支、编辑项目、添加部署密钥、配置项目钩子、开关公有模式、将项目转

移到另一个名称空间、删除项目