一、Gitlab简介

1.什么是gitlab

  1. gitlab是一个开源的分布式代码托管中心,主要实现:源代码管理、版本控制、代码复用、代码查找

2.gitlab与github有什么不同

  1. gitlab是模仿github。免费的私有仓库。安全。

3.为什么使用gitlab,它的优势与使用场景

  1. 免费开源<br /> 权限管理,能实现代码对个人可见<br /> 离线同步,不再实时依赖外网环境

二、Gitlab服务的组成

三、Gitlab安装(国内推荐)

  1. #安装准备:安装gitlab服务所需要的依赖包
  2. sudo yum install -y curl policycoreutils-python openssh-server perl
  3. #开启sshd(默认已开启)
  4. sudo systemctl enable sshd
  5. sudo systemctl start sshd
  6. #开启防火墙通道(关闭防火墙的不用管)
  7. sudo firewall-cmd --permanent --add-service=http
  8. sudo firewall-cmd --permanent --add-service=https
  9. sudo systemctl reload firewalld
  10. #安装邮件服务器,以便发送邮件(选择性安装)
  11. sudo yum install postfix
  12. sudo systemctl enable postfix
  13. sudo systemctl start postfix
  14. #下载清华大学源rpm包
  15. https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.0-ce.0.el7.x86_64.rpm
  16. #安装
  17. rpm -ivh gitlab-ce-13.9.0-ce.0.el7.x86_64.rpm

三、Gitlab安装(官方)

  1. #安装准备:安装gitlab服务所需要的依赖包
  2. sudo yum install -y curl policycoreutils-python openssh-server perl
  3. #开启sshd(默认已开启)
  4. sudo systemctl enable sshd
  5. sudo systemctl start sshd
  6. #开启防火墙通道(关闭防火墙的不用管)
  7. sudo firewall-cmd --permanent --add-service=http
  8. sudo firewall-cmd --permanent --add-service=https
  9. sudo systemctl reload firewalld
  10. #安装邮件服务器,以便发送邮件(选择性安装)
  11. sudo yum install postfix
  12. sudo systemctl enable postfix
  13. sudo systemctl start postfix
  14. #下载安装脚本
  15. curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash#下载gitlab服务,安装gitlab服务
  16. #修域名并安装
  17. sudo EXTERNAL_URL="http://www.zrq.com" yum install -y gitlab-ce

gitlab配置

  1. #配置服务、访问域名及邮箱
  2. vi /etc/gitlab/gitlab.rb
  3. #配置域名
  4. external_url 'http://gitlab.example.com'
  5. #修改gitlab默认存放目录
  6. gitlab_rails['manage_backup_path'] = true #开启备份
  7. gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #备份目录
  8. gitlab_rails['backup_keep_time'] = 604800 #备份保留时间
  9. #开启邮箱
  10. ### Email Settings
  11. gitlab_rails['gitlab_email_enabled'] = true #是否开启
  12. gitlab_rails['gitlab_email_from'] = '1093740290@qq.com' #开启的账户
  13. gitlab_rails['gitlab_email_display_name'] = 'zrq_gitlab' #邮件抬头显示
  14. #开启smtp服务
  15. gitlab_rails['smtp_enable'] = true
  16. gitlab_rails['smtp_address'] = "smtp.qq.com"
  17. gitlab_rails['smtp_port'] = 465
  18. gitlab_rails['smtp_user_name'] = "1093740290"
  19. gitlab_rails['smtp_password'] = "xxxxxx"
  20. gitlab_rails['smtp_domain'] = "qq.com"
  21. gitlab_rails['smtp_authentication'] = "login"
  22. gitlab_rails['smtp_enable_starttls_auto'] = true
  23. gitlab_rails['smtp_tls'] = true
  24. #关掉promethuse监控(可选)
  25. gitlab_monitor['enable'] = false
  26. prometheus['enable'] = false
  27. #初始化服务
  28. gitlab-ctl reconfigure
  29. #启动服务
  30. gitlab-ctl start
  31. #查看服务
  32. gitlab-ctl status
  33. #访问gitlab服务(之前配置的域名,如果配置的ip就用ip访问)
  34. http://www.zrq.com
  35. #gitlab邮箱测试
  36. 注册账户会发送信息到你邮箱

四、Gitlab设置中文图片.png图片.png五、Gitlab的基本操作

1.Gitlab中的用户、用户组、项目仓库之间的关系

  • 首先创建组
  • 然后创建项目隶属于这个组
  • 在创建用户,为用户分配组。那这个用户就对这个项目有了权限,并且可以在新加入踢出组,方便加人

    2.如何创建组、如何创建项目、如何创建用户,如何将用户加入组

  • 界面创建组

  • 界面创建项目
  • 界面创建用户(开发与开发组长)
  • 将开发组长加入组,并给所有者权限,将开发加入组并设置开发权限

    3.关掉注册功能图片.png4.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

  1. <a name="VQB4q"></a>
  2. ### 六.通过ssh登陆gitlab推送代码(通过http方式需要输入用户名密码)
  3. <a name="aUtov"></a>
  4. ### 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

  1. <a name="GUNb7"></a>
  2. ## 七、gitlab的分支与tag
  3. <a name="raD7A"></a>
  4. ## 八、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

升级

先备份,在直接安装新版本,在恢复 ```