一、Gitlab简介
1.什么是gitlab
gitlab是一个开源的分布式代码托管中心,主要实现:源代码管理、版本控制、代码复用、代码查找
2.gitlab与github有什么不同
gitlab是模仿github。免费的私有仓库。安全。
3.为什么使用gitlab,它的优势与使用场景
免费开源<br /> 权限管理,能实现代码对个人可见<br /> 离线同步,不再实时依赖外网环境
二、Gitlab服务的组成
三、Gitlab安装(国内推荐)
#安装准备:安装gitlab服务所需要的依赖包
sudo yum install -y curl policycoreutils-python openssh-server perl
#开启sshd(默认已开启)
sudo systemctl enable sshd
sudo systemctl start sshd
#开启防火墙通道(关闭防火墙的不用管)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
#安装邮件服务器,以便发送邮件(选择性安装)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
#下载清华大学源rpm包
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.0-ce.0.el7.x86_64.rpm
#安装
rpm -ivh gitlab-ce-13.9.0-ce.0.el7.x86_64.rpm
三、Gitlab安装(官方)
#安装准备:安装gitlab服务所需要的依赖包
sudo yum install -y curl policycoreutils-python openssh-server perl
#开启sshd(默认已开启)
sudo systemctl enable sshd
sudo systemctl start sshd
#开启防火墙通道(关闭防火墙的不用管)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
#安装邮件服务器,以便发送邮件(选择性安装)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
#下载安装脚本
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash#下载gitlab服务,安装gitlab服务
#修域名并安装
sudo EXTERNAL_URL="http://www.zrq.com" yum install -y gitlab-ce
gitlab配置
#配置服务、访问域名及邮箱
vi /etc/gitlab/gitlab.rb
#配置域名
external_url 'http://gitlab.example.com'
#修改gitlab默认存放目录
gitlab_rails['manage_backup_path'] = true #开启备份
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #备份目录
gitlab_rails['backup_keep_time'] = 604800 #备份保留时间
#开启邮箱
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true #是否开启
gitlab_rails['gitlab_email_from'] = '1093740290@qq.com' #开启的账户
gitlab_rails['gitlab_email_display_name'] = 'zrq_gitlab' #邮件抬头显示
#开启smtp服务
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "1093740290"
gitlab_rails['smtp_password'] = "xxxxxx"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
#关掉promethuse监控(可选)
gitlab_monitor['enable'] = false
prometheus['enable'] = false
#初始化服务
gitlab-ctl reconfigure
#启动服务
gitlab-ctl start
#查看服务
gitlab-ctl status
#访问gitlab服务(之前配置的域名,如果配置的ip就用ip访问)
http://www.zrq.com
#gitlab邮箱测试
注册账户会发送信息到你邮箱
四、Gitlab设置中文五、Gitlab的基本操作
1.Gitlab中的用户、用户组、项目仓库之间的关系
- 首先创建组
- 然后创建项目隶属于这个组
在创建用户,为用户分配组。那这个用户就对这个项目有了权限,并且可以在新加入踢出组,方便加人
2.如何创建组、如何创建项目、如何创建用户,如何将用户加入组
界面创建组
- 界面创建项目
- 界面创建用户(开发与开发组长)
- 将开发组长加入组,并给所有者权限,将开发加入组并设置开发权限
3.关掉注册功能4.gitlab新项目命令指引
```您还可以按照以下说明从计算机中上传现有文件。
Git 全局设置
git config —global user.name “Administrator” git config —global user.email “admin@example.com”
创建一个新仓库
git clone http://192.168.100.50/longquanyi/haonongren.git cd haonongren touch README.md git add README.md git commit -m “add README” git push -u origin master
推送现有文件夹
cd existing_folder git init git remote add origin http://192.168.100.50/longquanyi/haonongren.git git add . git commit -m “Initial commit” git push -u origin master
推送现有的 Git 仓库
cd existing_repo
git remote rename origin old-origin git remote add origin http://192.168.100.50/longquanyi/haonongren.git git push -u origin —all git push -u origin —tags
<a name="VQB4q"></a>
### 六.通过ssh登陆gitlab推送代码(通过http方式需要输入用户名密码)
<a name="aUtov"></a>
### 1.添加服务器用户的ssh公钥到gitlab![图片.png](https://cdn.nlark.com/yuque/0/2021/png/23032787/1635565417868-17321be7-4834-44ba-812b-cf39804459a3.png#clientId=u9242790e-af69-4&from=paste&height=541&id=u940218c1&margin=%5Bobject%20Object%5D&name=%E5%9B%BE%E7%89%87.png&originHeight=1081&originWidth=2549&originalType=binary&ratio=1&size=97655&status=done&style=none&taskId=u5b7ac63a-afe8-43f2-8f2e-db7d9aa6f1b&width=1274.5)2.本地测试用ssh推送
本地git删除origin
git remote remove origin
切换到使用ssh推送
git remote add origin git@192.168.100.50:longquanyi/haonongren.git git push -u origin master
<a name="GUNb7"></a>
## 七、gitlab的分支与tag
<a name="raD7A"></a>
## 八、gitlab的运维(备份、恢复、升级)
备份:手动备份
gitlab-rake gitlab:backup:create
恢复
先停止gitlab的数据写入服务(也可以直接停掉gitlab)
gitlab-ctl stop nicorn gitlab-ctl stop sidekiq
在执行恢复命令(注意名称是备份文件的名称,但是不要加后缀直接加时间戳与版本就好)
gitlab-rake gitlab:backup:restore BACKUP=1635605018_2021_10_30_13.9.0
恢复完毕保险起见重启下gitlab
gitlab-ctl restart
升级
先备份,在直接安装新版本,在恢复 ```