目录

1.Gitlab 安装

2.Gitlab 汉化

3.Gitlba 页面访问

4.Gitlab 代码管理

5.Gitlab 数据的备份与恢复

6.Git 命令合集


1.Gitlab 安装

# 安装依赖

yum install -y curl  policycoreutils-python openssh-server perl

# 确保启动了sshd,一般系统都是默认打开的

systemctl status sshd

# 安装gitlab(安装包版本gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm)

访问https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/ 下载指定安装包并上传至服务器目录

yum lcaolinstall -y gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

# 修改配置文件 登录地址和邮箱配置

vi /etc/gitlab/gitlab.rb

external_url 'http://192.168.10.12'  # gitlab登录地址

### GitLab email server settings
gitlab_rails['gitlab_email_enabled'] = true  # 是否启用GitLab发送邮件
gitlab_rails['gitlab_email_from'] = '18815819013@163.com'  # 发件人邮箱地址
gitlab_rails['gitlab_email_display_name'] = 'jiadeli' # 发件人显示名称
gitlab_rails['gitlab_email_reply_to'] = '18815819013@163.com' # 回复邮箱地址

gitlab_rails['smtp_enable'] = true  # 开启smtp协议
gitlab_rails['smtp_address'] = "smtp.163.com" # SMTP服务器地址
gitlab_rails['smtp_port'] = 465  # SMTP服务器端口
gitlab_rails['smtp_user_name'] = "18815819013@163.com"  邮箱登录用户名(完整邮箱地址)
gitlab_rails['smtp_password'] = "" #     邮箱密码或授权码
gitlab_rails['smtp_domain'] = "smtp.163.com" #SMTP HELO域名
gitlab_rails['smtp_authentication'] = "login" # 认证方式
gitlab_rails['smtp_enable_starttls_auto'] = true # 是否自动启用STARTTLS加密
gitlab_rails['smtp_tls'] = true # 是否使用SSL/TLS加密

#重新加载配置文件并重启

gitlab-ctl reconfigure

gitlab-ctl restart

2.Gitlab 汉化

# 汉化gitlab(汉化包与gitlab安装包版本一致gitlab-v10.2.2-zh.tar.gz)

访问https://gitlab.com/xhang/gitlab/ 下载指定汉化包并上传至服务器目录

# 停止服务

gitlab-ctl stop

# 解压汉化包并复制文件至gitlab中

tar -zvxf gitlab-v10.2.2-zh.tar.gz 

\cp -rf gitlab-v10.2.2-zh/* /opt/gitlab/embedded/service/gitlab-rails/

# 重启服务

gitlab-ctl start

3.Gitlba 页面访问

# 访问服务器IP并修改密码(关闭防火墙/开放端口)

# 默认登录用户为root

# 新建群组

# 新建项目

# 新建用户

# test用户登录并修改密码

# 将test用户添加进创建好的群组中,test用户就可以查看群组中的代码

4.Gitlab 代码管理

# 生成密钥

在服务器上生成密钥,将公钥配置到gitlab的设置的ssh密钥中,就可以在push/pull/clone代码

在test服务器上生成的公钥要配置在test用户的ssh-key设置中

# 复制ssh方式的链接,在服务器上将项目clone下载

# 服务器新增test用户,切换到test用户,新增golbal全局配置

# 新增test用户
useradd test
password test
su - test

# 安装git
yum install -y git

# 新增test用户的全局配置global
git config --global user.name "test"
git config --global user.email "18815819013@qq.com"
git config --global --list

 # 使用git clone将项目从gitlab远程仓库中下载

git clone git@192.168.10.12:test-dev/test-project.git
cd test-project.git
ls -la

# 创建test分支,进入test分支

git checkout -b test  # 创建并切换到test分支
git branch            # 查看当前分支

# 新增一个test2.txt文件并追踪至暂存区,然后再提交到本地仓库,最后推送到远程仓库test的分支中.

# 开发者test无法将代码推送到master分支中,gitlab默认开启了master分支保护

echo "第一个测试文件" > test2.txt
git status
git add .
git status
git commit -m "第一个测试文件"
git log
git push -u origin test

# 使用管理员账号登录gitlab,进入项目中可以看到自动创建了test分支

# 访问链接提交合并分支的请求,并提交给管理员进将test分支合并到master分支上

# 由管理员在master上进行分支合并。

# master分支中已经有推送的test2.txt文件

5.Gitlab 数据的备份与恢复

# gitlab数据的备份

 修改gitlab.rb配置文件,添加备份参数,并重新加载配置文件。

vi /etc/gitlab/gitlab.rb                             # 修改配置文件

gitlab_rails['manage_backup_path'] = true            # 打开备份
gitlab_rails['backup_path'] = "/opt/gitlab/backup"   # 备份路径



gitlab-ctl reconfigure            # 重新加载配置文件

gitlab-rake gitlab:backup:create  # 执行备份命令

ls /opt/gitlab/backup             # 查看备份的文件
1774520580_2026_03_26_10.2.2_gitlab_backup.tar

# gitlab数据的恢复

 数据恢复需要停止数据库的写入,保存gitlab正常运行,所以需要停止前端服务。

gitlab-ctl stop nginx                 # 停止nginx
ok: down: nginx: 1s, normally up
itlab-ctl stop unicorn                # 停止unicorn
ok: down: unicorn: 0s, normally up
gitlab-ctl stop sidekiq               # 停止sidekiq
ok: down: sidekiq: 0s, normally up


gitlab-ctl  status | grep down        # 查看down的进程
down: nginx: 64s, normally up; run: log: (pid 595) 8860s
down: sidekiq: 36s, normally up; run: log: (pid 601) 8860s
down: unicorn: 48s, normally up; run: log: (pid 630) 8860s

# 执行恢复命令,删除原有数据,导入tar包中的数据

gitlab-rake gitlab:backup:restore BACKUP=1774520580_2026_03_26_10.2.2  # 执行恢复命令,指定包名

gitlab-ctl reconfigure   # 重新读取配置文件

gitlab-ctl restart       # 重启服务

gitlab-ctl status        # 查看服务状态

# 登录gitlba页面,验证数据是否恢复。

6.Git 命令合集

git config --golbal user.name ""  # 新增全局变量 姓名
git config --golbal user.email "" # 新增全局变量 邮箱
git config --golbal coler.ui ture # 新增全局变量 开启颜色
git init .                        # 初始化当前目录
git inti /test                    # 创建并初始化 /test目录
git clont {URL}                   # 下载仓库到本地
git add .                         # 提交被跟踪的文件至暂存区
git status                        # 查看可提交至暂存区的文件
git commit -m "注释"              # 提交暂存区的文件至本地仓库
git log                           # 查看提交至本地仓库的信息
git rm  --cached 文件名           # 取消文件的跟踪
git mv 原文件名 文件名             # 修改被跟踪文件的文件名
git reset --head 版本id           # 回退指定的版本
git reflog                        # 记录提交和回退的信息
git stash sava "注释"             # 保存文件至stash临时区
git stash list                    # 查看stash临时区的文件
git stash pop                     # 恢复stash临时区的文件至暂存区
git branch                        # 查看当前分支
git branch /test                  # 创建/test/分支 -D删除分支
git checkout /test                # 切换至/test分支
git merge /test                   # 合并分支到master分支
git targ -a v1.0 -m commit的id    # 添加标签 
git show v1.0                     # 查看标签信息

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐