一、部署gitlab
1)安装gitlab所需依赖
| $ yum -y install epel-release curl openssh-server openssh-clients postfix cronie policycoreutils-python wget vim |
2)获取gitlab
① 方法一:通过清华大学的开源镜像站获取软件包(推荐)
| $ wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm |
② 方法二:通过gitlab官网来获取软件包(网络稳定时使用)
| $ wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm/download.rpm |
3)安装gitlab
| $ rpm -ivh gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm |
| #安装时间较长,耐心等待,安装过程中会出现gitlab的logo |
| $ yum -y localinstall gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm |
| #效果较好,自动解决依赖关系 |
4)修改配置文件并启动
| $ vim /etc/gitlab/gitlab.rb |
| external_url 'http://192.168.1.1' #修改为gitlab服务器的地址 |
| $ gitlab-ctl reconfigure |
| #重新配置gitlab,就算不修改配置文件,也需要在安装后重新配置gitlab |
| #接下来对这个文件进行操作,也需执行该条命令 |
| $ gitlab-ctl start |
5)访问
访问地址:http://192.168.1.1:80 ,如图:

二、汉化gitlab
1)获取gitlab汉化补丁包(如果不需要汉化,则跳过此步骤即可)
| $ head -1 /opt/gitlab/version-manifest.txt |
| gitlab-ce 12.3.5 |
| $ git clone https://gitlab.com/xhang/gitlab.git -b v12.3.5-zh |
| #获取汉化补丁包(注意需与gitlab的版本保持一致) |
| $ cd gitlab/ |
| [root@gitlab gitlab]# git diff v12.3.5 v12.3.5-zh > /root/v12.3.5-zh.diff |
| #用diff将英文原版与中文版的对比生成.diff文件 |
2)将中文补丁导入gitlab,并重新启动
| [root@gitlab gitlab]# gitlab-ctl stop #停止gitlab |
| [root@gitlab gitlab]# yum -y install patch |
| [root@gitlab gitlab]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../v12.3.5-zh.diff |
| #将刚才的diff文件做为补丁导入到gitlab中 |
| #该命令执行过程中,一路回车跳过即可 |
| [root@gitlab gitlab]# gitlab-ctl reconfigure |
| [root@gitlab gitlab]# gitlab-ctl start |
3)访问
第一次访问设置密码,完成之后登录,默认的管理员是root。



三、关闭用户注册功能
如果不关闭注册功能的话,任何可以访问gitlab页面的人都可以自行进行注册,十分危险!需进行以下操作,将注册功能关闭!

四、gitlab基本操作
1)配置SSH方式免密登录
| $ ssh-keygen |
| $ cat ~/.ssh/id_rsa.pub |
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnueXV9bol1lGvy2u73IoGYQE6DamUf8QKMd4UgfH5t8TGAwe2a82FKZ1fk2TbhIKttIJPzlqYpP5ap4/tple1Nwy5Mm5i3xo4nI8qhyfb/FFFdtx0iMIAEwzbpSzgsWbH7fZ+pubOgLRWusfcSzhBrfL4h73mG1Xa9jTCuR+uvs+3hiGTcGJ01smmaJvSWMTnw7D2HrBucnvRA0/IGV11qPj9Ssra1yzLZ9KNQRvEKGDiRW2rPvYafXFzt9tJLqkVjLkd3FXx6b8dMzjunf7lRaZzDIrBlRQBM6l13U+7Pqv/CLAwR+YNj8TzTyx4cyzII7uShsWse7udlkiAphmX root@gitlab |


2)创建一个基本库



| $ git config --global user.name "admin" |
| $ git config --global user.email "admin@admin.com" |
| $ git clone git@192.168.1.1:root/test.git |
| $ cd test/ |
| [root@gitlab test]# touch {1,2,3,4,5}.txt |
| [root@gitlab test]# git add . |
| [root@gitlab test]# git commit -m "first commit" |
| [root@gitlab test]# git push -u origin master |

五、重置gitlab管理员密码
| $ gitlab-rails console production |
| irb(main):001:0> user = User.where(id: 1).first #id为1的是超级管理员 |
| irb(main):002:0> user.password = 'yourpassword' #密码必须至少8个字符 |
| irb(main):003:0> user.save! #保存用户修改信息,如没有问题返回true |
| irb(main):004:0> exit #退出 |
六、gitlab的备份与恢复
1)更改配置文件,实现备份
| $ vim /etc/gitlab/gitlab.rb |
| gitlab_rails['backup_path'] = "/data/gitlab/backups" #更改备份路径 |
| gitlab_rails['backup_keep_time'] = 604800 #备份保留的时间 |
| $ mkdir -p /data/gitlab/backups |
| $ gitlab-ctl reconfigure |
2)手动备份、自动备份
| $ gitlab-rake gitlab:backup:create |
| $ crontab -e |
| 00 20 * * * /usr/bin/gitlab-rake gitlab:backup:create |
3)恢复数据
| $ gitlab-ctl stop unicorn |
| $ gitlab-ctl stop sidekiq |
| $ ls /data/gitlab/backups/ |
| 1581862634_2020_02_16_12.3.5_gitlab_backup.tar |
| $ gitlab-rake gitlab:backup:restore BACKUP=1581862634_2020_02_16_12.3.5 |
| $ gitlab-ctl restart |
| $ gitlab-ctl tail |
| #查看gitlab的日志信息 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律