GitLab 是一个基于 Git 的开源仓库管理系统,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。GitLab分为社区版(GitLab CE)和企业版(GitLab EE),其中社区版是免费的。
虚拟机建议 cpu 分配 2核 以上,内存 4G 以上
一、环境准备
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 查看防火墙状态
firewall-cmd --state
二、使用 docker 部署
1、安装 docker
# 添加阿里云docker-ce仓库
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 列出当前系统中所有可安装的 docker-ce 版本,并按照版本号从高到低进行排序,同时显示重复的版本。
dnf list docker-ce --showduplicates | sort -r
# 安装最新版本 docker-ce,也可以指定版本安装(dnf install -y docker-ce-3:28.1.1-1.el9)
dnf install -y docker-ce
# 启用Docker Cgroup用于限制进程的资源使用量,如CPU、内存资源
# 创建目录,存放 docker 的配置文件
mkdir -p /etc/docker
# 创建并写入 /etc/docker/daemon.json 文件,设置 Docker 使用 systemd 作为 Cgroup 驱动
# registry-mirrors 配置:docker 镜像加速器的地址列表。
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
EOF
# 设置 docker 开机自启
systemctl enable docker
# 启动 docker
systemctl start docker
# 查看 docker 状态
systemctl status docker
2、下载 gitlab 社区版
docker pull gitlab/gitlab-ce:latest
3、安装 gitlab
方式 1: 使用 Docker 直接运行 GitLab CE
# hostname 替换为虚拟机 ip
docker run -d \
--name gitlab \
--hostname 192.168.0.28 \
--restart unless-stopped \
-e GITLAB_OMNIBUS_CONFIG="
external_url 'http://192.168.0.28';
gitlab_rails['gitlab_shell_ssh_port'] = 2222;
" \
-p 80:80 \
-p 443:443 \
-p 2222:22 \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
方式 2:使用 Docker Compose 安装(推荐)
root 目录下创建 gitlab_deploy.yaml 文件,内容如下:
version: '3.6'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: 'gitlab'
restart: unless-stopped
hostname: '192.168.0.28' # hostname 替换为虚拟机 ip
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.28' # 替换为虚拟机 ip
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- '80:80'
- '443:443'
- '2222:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
# 启动 gitlab 服务
docker compose -f gitlab_deploy.yaml up -d
# 等待几分钟让 gitLab 完全启动(首次启动可能需要较长时间)
# 可以通过 docker ps 查看 gitlab 是否完全启动,如下所示,STATUS 为 healthy 后说明成功启动,如果是 starting 说明还在启动中
[root@gitlab ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4364289a9c2 gitlab/gitlab-ce:latest "/assets/init-contai..." 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:2222->22/tcp, [::]:2222->22/tcp gitlab
# 访问 http://192.168.0.28
# 用户名 root
# 用户密码在 /srv/gitlab/config/initial_root_password 文件中
# 使用命令 cat /srv/gitlab/config/initial_root_password 查看登录密码
# 里面的Password: 后面的值就是 root 默认的登录密码
# 登录 gitlab 后,先重置密码
三、常用 git 命令
1、初始化与克隆
# 在本地创建新仓库
git init
# 克隆远程 Git 仓库到本地
git clone http://gitlab.example.com/group/project.git
2、提交代码
# 添加文件到暂存区
git add filename.txt # 添加单个文件
git add . # 添加所有修改文件
# 提交暂存区到本地仓库
git commit -m "提交说明"
# 推送本地分支到远程仓库(即与之关联的远程分支)
git push
# 推送到 main 分支
git push origin main
3、拉取更新
# 拉取远程更新并合并
git pull origin main
# 仅拉取不自动合并
git fetch origin
4、分支管理
# 创建新分支但不切换
git branch feature
# 创建并切换到新分支
git checkout -b feature
# 切换回主分支
git checkout main
# 合并指定分支到当前分支
git merge feature
# 删除本地分支
git branch -d feature
# 删除远程分支
git push origin --delete feature
5、标签管理
# 创建轻量标签
git tag v1.0
# 创建带注释的标签
git tag -a v1.0 -m "版本1.0发布"
# 推送标签到远程
git push origin v1.0
# 查看所有标签
git tag
6、撤销与回滚
# 撤销工作区修改
git checkout -- filename.txt
# 撤销暂存区的文件
git reset HEAD filename.txt
# 回退到指定提交
git reset --hard commit_id
7、查看状态与日志
# 查看工作区状态,包括哪些文件被修改、添加或删除:
git status
# 查看提交历史
git log # 标准日志
git log --oneline # 简化日志
git log --graph # 带分支图的日志
# 查看工作区与暂存区的差异
git diff
# 查看暂存区与本地仓库的差异
git diff --staged
# 查看两次提交之间的差异
git diff commit1 commit2
8、其它常用
# 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"