一、快速入门步骤
- 注册与界面认知
- 注册 GitLab 账号(官网)或使用公司提供的实例
- 了解顶部导航栏:
- 项目(Projects)
- 群组(Groups)
- 部署(Deploy)
- 仓库(Repository)
- CI/CD 流水线
- 创建第一个项目
- 点击「New project」→ 选择「Create blank project」
- 填写项目名称(建议英文+短横线命名,如
my-first-project
) - 选择可见性级别(Private/Internal/Public)
- 基础 Git 操作
bash

# 克隆项目 git clone https://gitlab.com/your-username/project-name.git # 基础工作流 git checkout -b feature-branch # 创建分支 git add . # 添加修改 git commit -m "描述性提交信息" # 提交 git push origin feature-branch # 推送

交互式学习网址: https://university.gitlab.com/
二、必学核心功能
- Merge Request(MR)
- 代码审查流程:分支 → 推送 → 创建 MR → 审查 → 合并
- 学习使用「Changes」标签页进行行级评论
- 设置「Approval rules」要求必须的审查人数
- CI/CD 快速体验
在项目根目录创建
.gitlab-ci.yml
:yaml
复制
stages: - build - test build_job: stage: build script: - echo "Building..." test_job: stage: test script: - echo "Testing..."
- Issue 跟踪
- 创建带有里程碑(Milestone)和标签(Label)的 Issue
- 学习使用「关联 Issue」功能(如
Closes #123
)


三、效率工具
- Web IDE
- 直接在线编辑代码(适合快速小修改)
- 路径:项目 → 仓库 → 点击「Web IDE」按钮
- 代码片段(Snippets)
- 保存常用代码片段(路径:顶部菜单 → Snippets)
- 快捷搜索
- 按
s
键快速全局搜索 - 项目内使用
[文件名]
快速定位文件

四、进阶学习路径
- 安全功能
- 依赖扫描(Dependency Scanning)
- 密钥检测(Secret Detection)
- 部署功能
- 环境变量管理(Settings → CI/CD)
- Auto DevOps(自动化部署流水线)
- 监控
- 查看项目分析(Analytics → Repository)
- 使用 Prometheus 监控
五、学习资源
- 官方交互式学习:GitLab Learn
- 中文文档:GitLab 中文文档
- 快捷键列表:在 GitLab 界面按
?
键调出
六、常见问题处理
- 合并冲突:使用 Web IDE 的冲突解决工具
- 流水线失败:查看 Job 日志,注意错误标记(红色部分)
- 权限问题:检查项目成员的角色(Guest/Reporter/Developer/Maintainer/Owner)
什么是CI/CD?

持续集成,简称CI 通过频繁的代码合并与单元测试,快速反馈集成结果

持续交付,简称CD 交付前可以进一步确定集成后的代码在整体软件中的可用性与稳定性,确保应用程序的质量达到交付的标准,随时可以发布到生产环境 (半自动化发布)

持续部署,也简称CD 是持续交付的理想化,从持续集成到生产环境的流程,全自动化完成,极大缩短软件的发布周期,提高整体的交付效率


GitLab 与 GitHub 对比
1. 核心定位
对比项 | GitLab | GitHub |
主要功能 | 一体化 DevOps 平台(代码托管 + CI/CD + 监控) | 以代码托管和开源协作生态为核心 |
典型用户 | 企业团队(尤其需要内置 DevOps 工具的场景) | 开源开发者、个人项目、社区协作 |
2. 关键功能差异
功能 | GitLab | GitHub |
CI/CD | 内置强大流水线( .gitlab-ci.yml ) | 需依赖第三方工具(如 GitHub Actions) |
私有仓库 | 免费无限私有仓库(社区版) | 免费有限私有仓库(协作人数限制) |
部署方式 | 支持自托管(可私有化部署) | 仅 SaaS 服务(企业版可自托管) |
项目管理 | 内置 Issues、看板、Wiki、价值流分析 | 依赖 Projects、第三方集成(如 ZenHub) |
安全功能 | 内置漏洞扫描、依赖检查(DevSecOps) | 依赖 GitHub Advanced Security 扩展 |
3. 协作与生态
对比项 | GitLab | GitHub |
开源生态 | 较弱(企业用户更多) | 极强(全球最大开源社区) |
Merge/Pull Request | 功能更细(支持合并策略、审批规则) | 交互更简洁(适合轻量级协作) |
社区资源 | 中文文档完善,企业支持强 | 全球开发者活跃,教程和解决方案丰富 |
4. 适用场景选择
- 选 GitLab 如果:
✅ 需要一体化 DevOps 工具链(从开发到部署)
✅ 企业自托管需求(数据主权/合规性)
✅ 强调内置安全扫描和自动化测试
- 选 GitHub 如果:
✅ 参与或管理开源项目
✅ 依赖丰富的第三方集成(如 Slack、Vercel)
✅ 偏好更活跃的开发者社区
一句话总结
GitLab 是 “全功能 DevOps 平台”,GitHub 是 “代码社交网络”。
- 企业内私有项目推荐 GitLab,开源项目优先 GitHub。
- 两者均支持 Git 基础操作(克隆/提交/分支),学习成本相近。
手把手教你编写第一个 .gitlab-ci.yml
文件
编写gitlab-ci.yml文件以及应用
- 在项目中创建gitlab-ci文件

2. 配置gitlab-ci文件中的变量
$param1,$param2,$param3这3个就是变量
进入Settings->CI/CD->Variables

设置参数值
param1=变量1
param2=变量2
param3=变量3
这些值我们在等下运行pipeline时看看是否在gitlab-ci被引用到
- 配置gitlab runner 如果没有安装gitlab runner先去安装,怎么安装gitlab runner可以参考官网https://docs.gitlab.com/runner/install/ 安装完后将runner注册进gitlab,gitlab上都写着指令教程,放心实践 我这个项目已经有了个组共享的runner,我就直接用就好了,可以在gitlab-ci文件上指定runner,用tags属性

- 运行pipeline,进入CI/CD->Pipelines->Run pipeline 后看到3个job,这就是stage定义的对应的job

点击job1,可以看到输出的日志,我打印出的信息,看到输出了param1定义的值“变量1”

依次点job2,job3也可以看到输出日志
在job1看到他分几个步骤

gitlab-ci文件属
