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

Gitlab本地服务器搭建及配置-详细教程

文章目录

  • 1.简介
  • 2.Gitlab安装
  • 3.Gitlab配置
    • 3.1 端口配置
    • 3.2 root登录配置
      • 3.2.1 查看默认root密码
      • 3.2.1 中文设置
      • 3.2.3 修改root密码
    • 3.3 关闭升级与启用注册
    • 3.4 测试注册功能
      • 3.4.1 普通用户注册
      • 3.4.2 管理员审批
    • 3.5 设置默认主分支名称
    • 3.6 新建群聊或仓库,赋予用户权限
  • 4.用户免密登录设置
  • 5.首次代码推送
    • 5.1 全局设置
    • 5.2 初次上传代码(push master)
    • 5.3 测试下载代码(pull)
    • 5.4 在dev下修改代码后上传(push)
  • 6.其他说明
    • 6.1 常用GIT命令
    • 6.2 gitlab软件其他常用配置路径
    • 6.3 其他GitLab软件常用命令
  • 7.可能的错误
    • 7.1 git代码无法上传的问题
    • 7.2 无法切换dev分支的问题
    • 7.3 git时需要输入密码的问题
  • 8.致谢

1.简介

GitLab 是集代码托管、DevOps 自动化于一体的研发平台,最大特色是开源免费私有化部署,企业级流程与权限管控能力强劲。
对比 GitHub:GitHub 胜在全球开源生态与社区,GitLab 强于私有化部署和一站式 DevOps;
对比 Gitee:Gitee 主打国内高速访问与本土化服务,GitLab 在企业级自动化、私有化功能上更全面。

2.Gitlab安装

以Centos7为例,首先更换阿里的软件源:教程如下:
x86及ARM架构的Centos系统更换yum源,提升软件下载更新速度

安装 GitLab

# 直接安装最新版yuminstall-ygitlab-ce

软件包比较大,需要耐心等待

出现如下样式代表安装成功:

3.Gitlab配置

3.1 端口配置

注意关闭防火墙或针对拟开通端口开放策略,否则Gitlab服务端口可能无法访问。
编辑/etc/gitlab/gitlab.rb这个配置文件,修改如下行为需要的后台地址:

配置完成后,执行重新加载配置文件指令,启动过程较长,约3-10分钟不等,需要耐心等待一会儿

gitlab-ctl reconfigure

使用如下命令查看运行状态:

gitlab-ctl status

访问刚才配置的地址127.0.0.1:8888,测试可正常打开:

3.2 root登录配置

3.2.1 查看默认root密码

cat/etc/gitlab/initial_root_password

然后使用用户名:root,和如上密码可以登录后台网页(此处使用了网页翻译)

3.2.1 中文设置

后台中的偏好设置可以选择简体中文,保存然后刷新页面即可

3.2.3 修改root密码

从后台网页修改后重新登录即可

3.3 关闭升级与启用注册

打开如下配置即可关闭升级提示,并启用注册功能

3.4 测试注册功能

3.4.1 普通用户注册

选择注册,填写账号密码、邮箱等信息,注意注册后不能立即登录,需要root管理员审批

3.4.2 管理员审批

管理中心-用户菜单下,可以看到待通过的账号,点击批准即可。

3.5 设置默认主分支名称

有时候为了保持和github或者gitee统一,需要修改主分支名称为master或者main,可以在如下配置:

3.6 新建群聊或仓库,赋予用户权限

root账户下新增不同的群聊,或者是代码仓库

然后在群聊中可以新增不同的项目代码仓库,并可以选择人员权限


不同的权限含义如下:

4.用户免密登录设置

首先生成本机的密钥,依次执行:

cd~/.ssh# 设置你的邮箱ssh-keygen-trsa-C"XXXX@XXXXX.cn"#查看密钥catid_rsa.pub


然后在SSH密钥里面添加即可

5.首次代码推送

新建仓库之后,gitlab本身会提示有一些命令:

5.1 全局设置

gitconfig--globaluser.name"gitlab的账号名"#例如git config --global user.name "二狗 李"gitconfig--globaluser.email"注册gitlab的邮箱"#例如git config --global user.email "123456@qq.com"

5.2 初次上传代码(push master)

# 初始化gitinit --initial-branch=master# gti仓库地址根据实际替换gitremoteaddorigin http://172.XX.XX.XX:XXX/群组名称/仓库名称.git# 添加文件gitadd.# 添加提交描述gitcommit-m"firet add"# 上传到master分支gitpush origin master

上传代码到master后,建议立刻在后台gitlab页面增加一个dev分支用来开发用,防止在master主分支修改

5.3 测试下载代码(pull)

# 初始化gitinit# 添加仓库地址gitremoteaddorigin http://172.XX.XX.XX:XXX/群组名称/仓库名称.git# 从dev拉取数据gitpull origin dev# 列出所有分支名称gitbranch-a# 切换dev分支gitcheckout dev

5.4 在dev下修改代码后上传(push)

后续常用三行命令即可

# 在dev分支下可以编辑修改代码,修改后可以上传到dev分支同步gitadd.gitcommit-m"V2.0"gitpush

6.其他说明

6.1 常用GIT命令

6.2 gitlab软件其他常用配置路径

gitlab组件日志路径:/var/log/gitlab gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件 应用代码和组件依赖程序:/opt/gitlab 各个组件存储路径: /var/opt/gitlab/ 仓库默认存储路径 /var/opt/gitlab/git-data/repositories 版本文件备份路径:/var/opt/gitlab/backups/ nginx安装路径:/var/opt/gitlab/nginx redis安装路径:/var/opt/gitlab/redis

6.3 其他GitLab软件常用命令

#查看服务状态gitlab-ctl status 使用控制台实时查看日志# 查看所有的logs; 按 Ctrl-C 退出gitlab-ctltail# 拉取/var/log/gitlab下子目录的日志gitlab-ctltailgitlab-rails# 拉取某个指定的日志文件gitlab-ctltailnginx/gitlab_error.log#启动关闭gitlabgitlab-ctl start gitlab-ctl stop#停止gitlab-ctl status#查看状态gitlab-ctl restart#重启gitlab-ctl reconfigure#更新配置文件gitlab-ctlhelp#帮助gitlab-rake gitlab:checkSANITIZE=true--trace检查gitlab#gitlab 默认的日志文件存放在/var/log/gitlab 目录下gitlab-ctltail#查看所有日志#禁止 Gitlab 开机自启动systemctl disable gitlab-runsvdir.service#启用 Gitlab 开机自启动systemctlenablegitlab-runsvdir.service

7.可能的错误

7.1 git代码无法上传的问题

用惯gitee等系统的可能遇到使用SSH地址无法上传的问题,切换成HTTP地址即可成功另外上传的时候,务必确认是否开启某些科学上网工具,实测开启代理网络后,可能无法上传成功!

7.2 无法切换dev分支的问题

网页后台新建dev分支后,git pull的时候 ,选择git pull origin dev,然后git checkout dev就可以了

7.3 git时需要输入密码的问题

(1)检查SSH密钥是否在gitlab后台网页添加免密登录;
(2)首次使用的时候可能需要输入一次账号密码,按照提示输入即可;
(3)还有一种情况,可能没有初始化,参考本文5.1节全局设置

8.致谢

相关教程参考如下连接:
[1] 【GIT】基于git的gitee代码管理使用详细教程
[2] Gitlab 仓库搭建(详细版)
[3] gitlab初始化项目上传到gitlab一直提示输入密码错误

http://www.gsyq.cn/news/1533094.html

相关文章:

  • 离散数学·集合论深度学习笔记
  • LLM缝合机制揭秘:1.5%关键神经元如何驱动类推理行为
  • 彻底告懂 C++20 太空船运算符(<=>):一劳永逸的结构化比较艺术
  • 双轮驱动下的战略基石:凯撒易食如何重塑凯撒旅业的核心竞争力 - 品牌2026
  • 新手学 C 别死啃语法!第二期:吃透变量与运算符,手写简易计算器
  • 富士贴片机实用技术培训:从操作到精通的SMT核心技能
  • VC维度与样本复杂度:机器学习理论核心解析
  • AI高考数学全不及格?揭秘大模型的认知断层与评测新范式
  • 2026年靠谱的贵州亲子旅游/贵州地接旅行社TOP排行 - 行业平台推荐
  • 批量关键词批量检索,不用单次单个词检索,压缩一半操作时间
  • Python列表删除原理与生产级安全实践
  • 如何高效使用智慧树刷课插件:新手快速入门完整指南
  • Mos插件开发:如何为macOS鼠标滚动注入专业级定制能力?
  • 【Springboot毕设全套源码+文档】基于springboot3酒店管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 伺服电机仿真(50):高级专题与工程应用——构建以仿真驱动的伺服系统研发闭环
  • vLLM推理引擎源码解读
  • 达梦数据库国产化迁移实战:从Oracle/MySQL到达梦的完整指南
  • 2026年知名的多路阀换向阀/淮安手动换向阀主流厂家对比评测 - 行业平台推荐
  • Pytest Fixture 的使用和作用范围
  • RFID资产管理系统设计、选型与实施避坑指南
  • 【开源神器】三步搞定LRC歌词:歌词滚动姬免费在线工具完全指南
  • OpenClaw:面向工业现场的OS级AI Agent实践指南
  • 凯撒旅业与凯撒易食:一文看懂集团主体与食品板块的差异 - 品牌2026
  • Automation Studio:多领域仿真平台的核心原理、应用与学习路径
  • AutoDock-Vina分子对接终极指南:5步快速掌握完整工作流程
  • Little Navmap:如何通过智能数据架构解决飞行模拟导航的三大痛点
  • Open-LLM-VTuber 本地部署与互动实战指南
  • 【Springboot毕设全套源码+文档】基于springboot框架的汽车租赁管理系统(丰富项目+远程调试+讲解+定制)
  • 【计算机毕业设计案例】基于 SpringBoot 的足球赛事资讯与互动社区系统研发 足球赛事分享与粉丝互动交流网站的设计与实现(程序+文档+讲解+定制)
  • Pixelle-Video:本地化AI短视频生成流水线实战指南