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

GitLab 零基础入门指南:从安装到项目管理全流程

Git 作为版本控制工具已经成为开发者日常工作的必备技能,而 GitLab 作为与 GitHub 齐名的代码托管平台,凭借其强大的自托管能力和企业级功能,在团队协作与 DevOps 流程中占据着重要地位。本文将带你从零开始,一步步完成 GitLab 的安装部署、基础配置,并通过实际操作掌握项目、用户与群组的管理方法,让你快速上手这个强大的协作平台。

什么是 GitLab?

在开始实操前,我们先简单了解下 GitLab。它是一个开源的代码托管与协作平台,不仅提供了 Git 仓库管理功能,还集成了 issue 跟踪、CI/CD 流水线、Wiki 文档等工具,形成了完整的 DevOps 闭环。与 GitHub 相比,GitLab 最大的优势在于支持自托管部署,企业可以将其部署在私有服务器上,更好地保障代码安全与数据隐私,这也是它在企业级场景中广受欢迎的原因。

第一步:安装 GitLab

选择合适的安装包

GitLab 官方提供了多种安装方式,这里我们选择基于 Debian/Ubuntu 系统的 deb 包安装(兼容性好且操作简单)。为了加快下载速度,推荐使用清华大学镜像源:

# 下载 GitLab CE 社区版(14.0.0 版本)
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/gitlab-ce_14.0.0-ce.0_amd64.deb

提示:如果需要其他版本,可以访问镜像源地址(Index of /gitlab-ce/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)查看并选择合适的版本号。

执行安装命令

下载完成后,使用 dpkg 命令安装:

dpkg -i gitlab-ce_14.0.0-ce.0_amd64.deb

安装成功的标志是终端会显示 GitLab 的狐狸图标(GitLab 的吉祥物),这意味着基础文件已部署到系统中。

第二步:配置访问地址与域名解析

设置外部访问地址

安装完成后,我们需要配置 GitLab 的访问地址(域名或 IP)。编辑主配置文件:

vim /etc/gitlab/gitlab.rb

找到 external_url 配置项,修改为你的域名(企业中通常使用域名,这里以 http://web.gitlab.com 为例):

external_url 'http://web.gitlab.com'

保存退出后,暂时不要重启服务,我们还需要配置本地域名解析。

配置本地 hosts 解析

为了让本地设备识别 web.gitlab.com 这个域名,需要在 hosts 文件中添加解析记录:

  • Windows 系统:编辑 C:\Windows\System32\drivers\etc\hosts

  • Linux/macOS 系统:编辑 /etc/hosts

添加如下内容(IP 地址替换为你的 GitLab 服务器实际 IP):

10.0.0.110    web.gitlab.com

这样,当你在浏览器中输入 web.gitlab.com 时,系统会自动指向服务器的 IP 地址。

第三步:启动并验证 GitLab 服务

应用配置并启动服务

修改配置后,需要执行以下命令使配置生效并启动服务:

sudo gitlab-ctl reconfigure

这个过程可能需要几分钟(会自动配置 Nginx、PostgreSQL 等依赖组件),耐心等待即可。启动成功后,终端会提示默认管理员账号(root)和密码存放路径。

检查服务状态

使用以下命令查看 GitLab 各组件的运行状态:

gitlab-ctl status

如果所有组件(如 nginx、postgresql、redis 等)都显示 run 状态,说明服务启动正常。

GitLab 核心组件与目录结构

了解 GitLab 的内部结构有助于后续的维护与问题排查,核心组件与目录如下:

核心组件

  • nginx:静态 Web 服务器,处理 HTTP 请求

  • gitlab-shell:处理 Git 命令交互(如 clone、push 等)

  • postgresql:存储 GitLab 所有业务数据(用户、项目、权限等)

  • redis:缓存数据库,提升系统响应速度

  • sidekiq:后台任务队列,处理异步操作(如邮件发送、备份等)

关键目录

  • /etc/gitlab/:配置文件目录(核心文件 gitlab.rb 在此处)

  • /var/log/gitlab/:所有组件的日志文件

  • /var/opt/gitlab/git-data/repositories/:Git 仓库数据存储目录

  • /var/opt/gitlab/backups/:自动备份文件存放目录

常用操作命令

掌握以下命令可以高效管理 GitLab 服务:

命令功能描述
gitlab-ctl start启动所有服务(可指定单个服务,如 gitlab-ctl start nginx
gitlab-ctl stop停止所有服务
gitlab-ctl restart重启所有服务
gitlab-ctl reconfigure应用配置文件修改(必用!)
gitlab-ctl tail <service>实时查看指定服务的日志(如 gitlab-ctl tail postgresql
gitlab-ctl show-config验证配置文件是否有误

第四步:登录 GitLab 并初始化设置

获取初始密码

GitLab 安装后会自动生成 root 管理员的初始密码,存储在以下文件中:

cat /etc/gitlab/initial_root_password

注意:该文件会在 24 小时后自动删除,建议首次登录后立即修改密码。

首次登录与密码修改

  1. 打开浏览器,访问 http://web.gitlab.com

  2. 使用账号 root 和上述密码登录

  3. 首次登录会强制要求修改密码,设置一个安全的新密码后重新登录

第五步:GitLab 核心功能实战

1. 管理群组(Group)

群组是 GitLab 中管理项目和用户的重要单位,适合按团队或业务线划分。创建步骤:

  1. 登录后点击顶部导航栏的 GroupsNew group

  2. 填写群组名称(如 test)和描述

  3. 选择可见性级别(企业中常用 Private,仅指定用户可访问)

  4. 点击 Create group 完成创建

2. 创建项目(Project)

项目是代码托管的基本单元,可归属于某个群组。创建步骤:

  1. 进入群组页面,点击 New project

  2. 选择创建方式(这里以「空白项目」为例)

  3. 填写项目名称(如 hello-world),选择归属群组

  4. 点击 Create project 完成创建

3. 添加用户与权限分配

团队协作需要为成员分配适当的权限:

  1. 点击顶部导航栏的 AdminUsersNew user

  2. 填写用户名、邮箱等信息,创建用户

  3. 进入用户详情页,设置初始密码

  4. 回到群组页面,点击 MembersAdd members,输入用户名并分配角色(如 Developer 可提交代码,Maintainer 可管理项目)

第六步:本地项目推送到 GitLab

准备本地项目

假设你已有一个本地 Git 项目(若没有,可按以下步骤创建):

# 初始化项目
mkdir hello-world && cd hello-world
git init# 创建示例文件
vim hello.html

编辑 hello.html 内容:

<!DOCTYPE html>
<html>
<head><title>Hello World!</title>
</head>
<body><h1>Hello world!</h1><p>This is the first file in my new Git Repo.</p>
</body>
</html>

提交到本地仓库:

git add hello.html
git commit -m "First release of Hello World!"
git tag v1.0  # 打标签

配置 SSH 密钥

为了避免每次推送代码输入密码,建议配置 SSH 密钥:

# 生成 SSH 密钥(一路回车默认即可)
ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"# 查看公钥内容
cat ~/.ssh/id_rsa.pub

将输出的公钥复制到 GitLab:

  1. 登录用户账号(非 root)

  2. 点击右上角头像 → Edit profileSSH Keys

  3. 粘贴公钥,点击 Add key

  4. 然后就可以看到刚才添加的密钥了

  5. 本地访问测试,出现Welcome to GitLab, @hello!即代表可以正常访问

    ssh -T git@web.gitlab.com

推送项目到远程仓库

在 GitLab 项目页面复制 SSH 地址(如 git@web.gitlab.com:test-group/hello-world.git),执行推送命令:

# 关联远程仓库
git remote add origin git@web.gitlab.com:test-group/hello-world.git
​
# 推送代码
git push --set-upstream origin master

推送成功后,刷新 GitLab 项目页面,即可看到刚才提交的代码文件。

总结

通过本文的步骤,你已经完成了 GitLab 的安装部署、基础配置,并掌握了群组、项目、用户的管理方法,以及本地代码推送到远程仓库的流程。GitLab 的功能远不止于此,后续还可以探索其 CI/CD 流水线、分支保护、issue 管理等高级功能,逐步构建完整的 DevOps 工作流。

如果在操作中遇到问题,可以通过 gitlab-ctl tail 查看日志排查,或参考官方文档(GitLab Docs)获取更多帮助。

http://www.lryc.cn/news/617070.html

相关文章:

  • Java:单例模式
  • Python day40
  • 在Word和WPS文字一页中实现一栏与多栏混排
  • 攻击实验(ARP欺骗、MAC洪范、TCP SYN Flood攻击、DNS欺骗、DHCP饿死)
  • CompletableFuture实现Excel 多个sheet页批量导出
  • 基于PyTorch一文讲清楚损失函数与激活函数并配上详细的图文讲解
  • 展锐平台(Android15)WLAN热点名称修改不生效问题分析
  • 使用tcp ntrip 协议 接收数据报错 java.net.SocketException: Connection reset
  • IDEA 安装插件的两种方式
  • CVPR医学图像三套创新方案:通用分割+3D高效解码+SSM肿瘤定位(附链接)
  • C++高频知识点(二十)
  • jupyter notebook如何打开其他盘目录
  • 创建降阶模型用于搅拌槽中的涡流预测
  • P3232 [HNOI2013] 游走,solution
  • 后量子密码学的迁移与安全保障:迎接量子时代的挑战
  • 力扣559:N叉树的最大深度
  • Beelzebub靶机攻略
  • 腾讯云EdgeOne KV存储在游戏资源发布中的技术实践与架构解析
  • 机器学习之K-means(K-均值)算法
  • 【数据分析】循环移位岭回归分析:光遗传学冻结行为模式研究
  • 复现论文《多无人机协同任务分配算法设计与实现》
  • 小学数学计算技巧全攻略
  • 7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序
  • 生产环境中atop命令使用总结
  • FreeRTOS 任务与中断函数:运行机制、关键区别与使用准则
  • GC如何判断对象可以被回收?
  • 利用容器编排完成haproxy和nginx负载均衡架构实施
  • 【代码随想录day 15】 力扣 222.完全二叉树的节点个数
  • 【Python 小脚本·大用途 · 第 2 篇】
  • Day11 原理篇