当前位置: 首页 > news >正文

16 gitlab - 详解

16 gitlab

16.1 安装

安装 GitLab 需要依赖

 policycoreutils-python  包

yum install policycoreutils-python

GitLab 还可能需要其他基础依赖,一并安装:

yum install -y curl policycoreutils openssh-server openssh-clients postfix

下载gitlab

从官网下载适配 el7  的 GitLab 版本(与 centOS 7.6兼容):https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=el%2F8

注:如果云服务器是其他版本,安装步骤见https://blog.csdn.net/weixin_43268590/article/details/125009013?fromshare=blogdetail&sharetype=blogdetail&sharerId=125009013&sharerefer=PC&sharesource=LSL666_&sharefrom=from_link

下载后的rpm包拖到/usr/local/src目录下

安装gitlab

rpm -ivh gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm

安装成功后会出现下面界面

编辑 GitLab 配置文件

配置gitlab的访问地址。

vim /etc/gitlab/gitlab.rb

//后面的ip是自己云服务器的ip(这个如果不写端口号,默认就是80端口)

重新加载配置

gitlab-ctl reconfigure

访问gitlab

在浏览器输入 http://你的ip,会出现以下界面,密码自己设置。

用户是root,默认的,每个人都有一个默认的root,密码就是刚刚自己设置的密码。

登录后的页面和github类似

16.2 使用

新建项目

登录后创建空白项目
选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的)
创建后会出现这个页面

关联远程仓库

GitLab 可以通过 HTTP 连接和 SSH 连接。
gitlab上有这个提示 是因为SH 连接在代码拉取(pull)和推送(push)时具有一些优势,比如不需要每次都输入用户名和密码(配置好 SSH 密钥后可实现无密码认证)、传输效率和安全性也较高。GitLab 提示你添加 SSH 密钥到个人资料,是为了让你可以选择使用更便捷的 SSH 方式进行代码的拉取和推送操作;如果你暂时不想配置,也可以继续使用 HTTP 方式,只是可能需要频繁输入认证信息。

http连接

ssh连接

生成公钥
GitLab 的 SSH 密钥权限是 “按设备 / 终端区分”的:
  • 服务器和本地电脑是两台不同的设备,各自的操作环境独立,所以需要分别生成密钥并配置到 GitLab 中,才能让它们各自拥有访问权限。
  • 简单说:“谁要连接 GitLab 仓库,谁就需要配置自己的 SSH 密钥”
比如你通过 SSH 登录到一台远程服务器,想在这台服务器上拉取、推送 GitLab 仓库的代码,那么就需要在这台服务器上生成 SSH 密钥(ssh-keygen),然后把生成的公钥(id_rsa.pub)添加到 GitLab 中。
如果你想在自己的本地电脑上开发,直接拉取、推送代码到远程 GitLab 仓库,那么就需要在本地电脑(Windows)上生成 SSH 密钥(ssh-keygen),然后把本地的公钥(id_rsa.pub)添加到 GitLab 中。
生成公钥的方法和Gitee、github的方法一样。
在云服务器上生成公钥
在mobaxterm上执行命令
ssh-keygen

注:ssh-keygen 命令本身支持所有参数(包括 -t 指定算法、-C 指定注释),无论在服务器(Linux)还是本地(Windows)生成,都可以加这些参数。无论是服务器还是本地,不指定参数时,ssh-keygen 会用默认值:
  • 算法默认是 RSA(旧系统)或更优算法(新系统,如 ED25519);
  • 注释默认是:云服务器为 当前用户名@设备名、本地为 你的Windows用户名@电脑名)。云服务器的当前用户名@设备名就是打开mobaxterm输入命令时前面[] 里的值,比如root@iZ2zecrpxkiu7zm08qc5ugZ。本地的同理,在git bash里输入命令时前面[] 里的值,比如LSL66@LSL
查看公钥,将上面的公钥文件复制到gitlab中
在gitlab上点击
粘贴复制过来的公钥
在本地电脑上生成公钥
因为前面已经在本地生成过公钥,并且同一个 SSH 公钥可以同时配置到 Gitee、GitHub、GitLab 等多个代码托管平台,不会冲突。所以这里就用以前的公钥。
查看以前的公钥
配置到gitlab
此时回到git bash测试连接,如果显示要输入密码,说明公钥可能没有配置成功或者是gitlab无法正确读取到私钥(虽然是一样的步骤,在Gitee上能成功可能是因为Gitee每次试私钥时的次数更多,但是gitlab可能试1-2次就会返回,或者是其他原因)。
ssh -T git@你的ip

此时,手动指定私钥,看公钥是否配置成功

ssh -i ~/.ssh/id_rsa -T git@你的ip

手动指定后可以成功登录,但是不指定就是显示要输入密码。

此时在本地~/.ssh/,目录下新建config文件。config 文件的作用是 “主动指定密钥”,即告诉 SSH 客户端:“连接到 xxx 服务器时,就用 yyy 这个私钥”。

# GitLab 配置(云服务器)
Host gitlab-cloudHostName 你的GitLab服务器IP  # 替换为实际的云服务器IP(如xxxxx)User git                     # GitLab 的SSH连接默认用户是git,固定不变IdentityFile ~/.ssh/id_ed25519  # 你的GitLab私钥路径(确保和实际文件名一致)
# 无需添加Gitee配置,保持现状即可(不影响现有功能)

注:IdentityFile需要和前面配置到gitlab的保持一致,这里和上面的没有保持一致是因为后面我重新换过配置到gitlab的公钥,这个公钥的文件名是id_ed25519.pub

此时可以成功连接

连接远程仓库

这个有两个方法,一个是直接克隆远程仓库,一个是本仓库关联远程仓库。以克隆为例:

点进去远程仓库往下翻就是教程,在ssh的位置可以选择要显示ssh的教程还是http的教程。

直接复制即可

gitlab更多使用步骤见GitLab使用教程(详细)-CSDN博客

16.3 GitLab终端常用命令

查看gitlab 版本,有两个命令。任选其一即可。

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

rpm -qa gitlab-ce

查看安装目录

ls /opt/gitlab/

ll /opt/gitlab/

查看数据目录

ll /var/opt/gitlab

启动所有 gitlab 组件

gitlab-ctl start

检查服务状态:

gitlab-ctl status  # 确保nginx、postgresql、unicorn等核心服务为run状态

如果出现下面这种情况,Sidekiq 服务处于 down 状态,会导致访问出现502错误。

停止所有 gitlab 组件

gitlab-ctl stop

重启所有 gitlab 组件

gitlab-ctl restart

重新加载 GitLab 的配置

gitlab-ctl reconfigure

修改默认的配置文件

vim /etc/gitlab/gitlab.rb

查看日志

gitlab-ctl tail

http://www.jsqmd.com/news/194848/

相关文章:

  • 论文AI率太高怎么办?亲测5款免费降AIGC工具,拯救毕业论文!
  • Steam创意工坊模组下载终极指南:WorkshopDL零基础快速上手
  • 2026最新地暖安装公司top5推荐榜:服务于四川贵州云南重庆等地优质厂家及服务商解析/选择指南 - 全局中转站
  • 基于python的语音和背景音乐分离算法及系统(源码+文档)
  • ISIF Cloud HKG-B/HKG-C解锁(NSP)
  • Deep Research深度研究智能体:从RAG到自主科研,大模型学习必读指南
  • 生产级短信验证码登录系统设计:从安全对抗到工程落地
  • leetcode 848. Shifting Letters 字母移位-耗时100%
  • 华为OD机考双机位C卷 - 寻找密码(Java Python JS C/C++ GO )
  • Elasticsearch 全面解析:搜索引擎原理与实战指南
  • 2026年,预训练又回来了!非常详细收藏我这一篇就够了
  • 2026年评价高的抽污水化粪池,化粪池处理,化粪池清理公司推荐榜单 - 品牌鉴赏师
  • 深度学习计算机毕设之卷神经网络基于改进卷积模型的人脸性别和情感分类研究与应用实现
  • 基于Java的天然鱼类监测智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • 华为OD机考双机位C卷 - 风险投资计划(Java Python JS C/C++ GO )
  • 深度学习毕设项目推荐-基于人工智能Spatial Dropout-GRU和TextCNN的中文影评情感分析
  • 一文搞懂!Hologres高性能写入
  • P2260 [清华集训 2012] 模积和
  • 深度学习毕设项目:基于人工智能改进卷积模型的人脸性别和情感分类研究与应用实现
  • 基于Java的天花吊顶业务智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • 深度学习毕设选题推荐:基于卷神经网络改进卷积模型的人脸性别和情感分类研究与应用实现
  • 华为OD机考双机位C卷 - 挑选宝石 (Java Python JS C/C++ GO )
  • 【计算机毕业设计案例】基于Spatial Dropout-GRU和TextCNN的中文影评情感分析机器学习
  • AI Agents:AI Agents框架介绍,非常详细收藏我这一篇就够了
  • 2025大模型应用全景指南:从技术演进到行业落地,程序员必读收藏
  • 基于Java的太阳光发电智慧管理系统的设计与实现全方位解析:附毕设论文+源代码
  • AI下的Memory策略和项目文档实践
  • 中佛罗里达大学破解仿真优化难题:让计算机在噪声中找到最优解
  • ByteDance联手顶尖学府重新定义AI思考:当机器学会分层理解世界
  • 基于Java的失业人员档案智慧管理系统的设计与实现全方位解析:附毕设论文+源代码