Akemi

Gitlab

2024/05/01

如果出现无法载图的情况,请检查与github的连通性

gitlab概述

gitlab是一个开源的分布式版本管理控制系统
github的私有仓库需要收费,而gitlab自己搭建,私有且免费
公司不希望员工获取所有d代码;开源项目一般会使用github

gitlab开源免费,搭建简单,维护成本低,适合中小型公司
并且能做权限管理,实现代码对部分人可见
离线同步,不依赖网络环境进行提交代码

gitlab部署和管理

1
2
3
4
5
6
7
8
9
10
docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

cat /home/gitlab/config/initial_root_password
qIlvj77AbtB/vXrSac+P3i9Nc/bHOKWzqrGB7a+VhZQ=

直接访问网页
账号root+密码

#汉化
在偏好设置中本地化设置中选择简体中文

gitla管理

取消注册功能

管理的分级规则:
用户——项目组——项目

创建步骤:

1.创建群组(设置私有/公开,设置可创建项目的角色)
创建完之后可以进行管理,邀请成员进入

2.创建项目(相当于一个github的repository)
可以通过提示的命令,将代码git push到这个项目中

3.创建用户

进入管理中心——新建新用户

管理中心——群组——将用户加入到群组中(选择他的权限)

本地仓库连接gitlab

添加完成新用户后
登录新用户

在本地/.ssh内新建密钥对,将新公钥复制存放到新用户的项目ssh密钥中
在本地
/.ssh/config中添加

1
2
3
4
Host gitlab
HostName 172.16.2.166
User git
IdentityFile ~/.ssh/id_rsa_gitlab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ssh-agent bash
ssh-add ~/.ssh/id_rsa_gitlab

#新建一个文件夹作为项目
mkdir test2
cd test2/
git config --global user.name "盛 王"
git config --global user.email "1320991378@qq.com"
git clone ssh://git@172.16.2.166:222/dev01/project01.git
#
拉取成功
#
git checkout -b dev
git push -uf origin dev
#

main分支默认收保护,无法直接推送到main分支,会报错,所以我这里推送一个dev分支

gitlab备份和恢复

备份

配置文件/home/gitlab/config/gitlab.rc
默认备份文件配置

手动备份:(进入容器内部)
gitlab-backup create

查看备份的文件,位于/data/backups下

自动备份:
(使用crontab)
gitlab镜像使用的是apt管理包,进入容器后修改apt源

1
2
3
4
5
6
echo "deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse" >> /etc/apt/sources.list
apt update
apt -y install cron

crontab -e
00 01 * * * gitlab-backup create &> /dev/null

恢复

1
2
3
4
5
6
#停止gitlab
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

cd /var/opt/gitlab/backups
gitlab-backup restore 1714187970_2024_04_27_16.11.1_gitlab_backup.tar

CATALOG
  1. 1. gitlab概述
  2. 2. gitlab部署和管理
    1. 2.1. gitla管理
  3. 3. 本地仓库连接gitlab
  4. 4. gitlab备份和恢复
    1. 4.1. 备份
    2. 4.2. 恢复