Skip to content

GitLab

官网:https://gitlab.cn/

安装文档:https://gitlab.cn/install/

GitLab 简介

GitLab 是一个基于 Git 的项目管理软件,用于仓库管理系统的开源项目。使用 Git 作为代码管理工具,并在此基础上搭建起来 Web 服务。

Gitlab安装

官方rpm包:https://packages.gitlab.cn/

openEuler

下载极狐GitLab 安装包

bash
curl -LOS https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el9/gitlab-ce-17.7.0-ce.0.el9.x86_64.rpm

# 解决libcrypt.so.2缺失问题
ln -sf /usr/lib64/libcrypt.so.1.1.0 /usr/lib64/libcrypt.so.2
# 安装
export EXTERNAL_URL="http://192.168.148.110" && dnf localinstall -y gitlab-ce-17.7.0-ce.0.el9.x86_64.rpm

gitlab常用的默认安装目录

bash
gitlab组件日志路径:/var/log/gitlab
gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件
应用代码和组件依赖程序:/opt/gitlab
各个组件存储路径: /var/opt/gitlab/
仓库默认存储路径 /var/opt/gitlab/git-data/repositories
版本文件备份路径:/var/opt/gitlab/backups/

配置文件

bash
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.148.110'

# 重新加载配置
gitlab-ctl reconfigure
gitlab-ctl stop

# 查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

操作命令

bash
gitlab-ctl start    			#启动所有 gitlab 组件;
gitlab-ctl stop        			#停止所有 gitlab 组件;
gitlab-ctl restart        		#重启所有 gitlab 组件;
gitlab-ctl status        		#查看服务状态;
gitlab-ctl reconfigure       	#启动服务;
vim /etc/gitlab/gitlab.rb     	#修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    #检查gitlab;
gitlab-ctl tail        			#查看日志;

汉化

GitLab中文社区的项目,v7-v8.8是由Larry Li发起的https://gitlab.com/larryli/gitlab

从v8.9之后由https://gitlab.com/xhang/gitlab开始继续汉化项目

bash
# 查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

# 停止gitlab 
gitlab-ctl stop

# 下载安装包
wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz
tar -zxf gitlab-v12.3.5-zh.tar.gz

# 备份原文件
cp -fr /opt/gitlab/embedded/service/gitlab-rails{,gao-`date +%Y%m%d`}
# 强制覆盖
\cp -rf ./gitlab-v12.3.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/

# 重新加载配置文件
gitlab-ctl reconfigure
# 启动服务
gitlab-ctl restart

登录GitLab 实例

使用第二步 EXTERNAL_URL 中配置的地址来访问安装成功的极狐GitLab 实例。用户名默认为 root 。如果在安装过程中指定了初始密码,则用初始密码登录,如果未指定密码,则系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并使用 root 用户名登录。

注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。

bash

# 查看密码
grep "^Password" /etc/gitlab/initial_root_password

修改密码

可以直接请求:/-/user_settings/password/edit

  • Current password:初始密码
  • New password:新密码
  • Password confirmation:重复新密码

关闭自动注册

Admin —> Settings —> General —>Sign-up restrictions -> 取消勾选Sign-up enabled —> Save changes

GitLab 操作

创建群组

首页 —> Groups —> New group

  • Group name:自定义群组名
  • Group URL:群组地址
  • Visibility level:可见性
    • Private:私有
    • Internal:内部
    • Public:公开

创建项目

创建空白项目-Create blank project

  • Project name:项目名
  • Project URL:这个是群组的名
  • Visibility Level:可见级别
    • Private:私有
    • Internal:内部
    • Public:公开
  • Project Configuration:项目初始配置
    • Initialize repository with a README:初始化项目并创建README(如果本地有代码不要勾选)
    • Enable Static Application Security Testing (SAST):分析源代码是否存在已知的安全漏洞

main分支禁止push

Admin —> Settings —> Repository —> Protected branches

  • Branch:默认main是受保护的,但还是可以push和合并的
  • Allowed to push and merge:选择No one

添加SSH密钥

客户端创建密钥

bash
# 创建密钥
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N '' -C "admin@qq.com"

# 查看公钥
cat ~/.ssh/id_rsa.pub
  • -t rsa:使用 RSA 算法。
  • -b 4096:指定密钥长度为 4096 位(更安全)。默认是 3072 位,可以省略 -b参数。
  • -f ~/.ssh/id_rsa:私钥保存为 ~/.ssh/id_rsa,公钥为 id_rsa.pub

Gitlab 添加密钥

点击头像 —> Edit profile —> SSH Keys —> Add new key

或者直接请求:/-/user_settings/ssh_keys

创建用户

创建用户:Admin —> Overview —> Users —> New user

设置密码:Admin —> Overview —> Users —> Edit

项目分配用户

点击仓库进入 —> Manage —> Members —> Invite members

  • 下拉选择用户
  • Select a role:选择角色

代码合并

一般都是普通用户创建代码合并申请,然后管理员同意

申请

点击仓库进入 —> Code—> Merge requests —> New merge request

  • Source branch:设置源仓库和分支如:dev
  • Target branch:设置目标仓库和分支如:main

同意

授权之前有点赞和点踩,通过则点点赞否则点踩

点击仓库进入 —> Merge requests —> 从列表中找到要授权的申请 —> Set to auto-merge