GitLab教程(1): 什么是GitLab及其核心功能
GitLab是一个基于Git的完整DevOps平台,提供从代码托管到CI/CD的一站式解决方案。本文将介绍GitLab的核心概念和功能特点。
GitLab简介
GitLab是一个开源的DevOps平台,提供Git代码仓库管理、问题跟踪、CI/CD流水线、代码审查等功能。它可以自托管部署,也提供SaaS服务(gitlab.com)。
GitLab vs GitHub vs Gitee
# 功能对比
功能 GitLab GitHub Gitee
────────────────────────────────────────────────────────────
代码托管 ✓ ✓ ✓
内置CI/CD ✓ (强大) ✓ (Actions) ✓ (基础)
自托管 ✓ (免费) ✓ (收费) ✓ (收费)
代码审查 ✓ ✓ ✓
问题跟踪 ✓ ✓ ✓
容器镜像仓库 ✓ ✓ ✓
Kubernetes集成 ✓ ✓ ✗
安全扫描 ✓ ✓ ✓
中国访问 一般 较慢 快
# GitLab特点
- 开源,可自托管
- 完整的DevOps工具链
- 强大的CI/CD功能
- 支持私有部署
- 企业级安全功能
GitLab版本
# GitLab有两个主要版本
1. GitLab CE (Community Edition)
- 开源免费
- 核心功能完整
- 社区支持
- 适合个人和小团队
2. GitLab EE (Enterprise Edition)
- 商业版本
- 高级功能(LDAP组同步、高可用等)
- 官方支持
- 适合大型企业
# 部署方式
- gitlab.com (SaaS)
- 自托管 (Self-managed)
- GitLab Dedicated (托管私有实例)
GitLab核心功能
1. 代码管理 (Source Code Management)
# Git仓库操作
# 克隆仓库
git clone https://gitlab.com/username/project.git
git clone git@gitlab.com:username/project.git
# 创建分支
git checkout -b feature/new-feature
# 推送代码
git push origin feature/new-feature
# 仓库功能
- 分支保护
- 合并请求 (Merge Request)
- 代码审查
- Web IDE在线编辑
- 文件锁定
- 代码搜索
2. CI/CD流水线
# .gitlab-ci.yml 示例
stages:
- build
- test
- deploy
build:
stage: build
script:
- npm install
- npm run build
artifacts:
paths:
- dist/
test:
stage: test
script:
- npm run test
deploy:
stage: deploy
script:
- ./deploy.sh
only:
- main
# CI/CD功能
- 自动化构建和测试
- 多阶段流水线
- 并行执行
- 环境管理
- 部署审批
- 回滚支持
3. 问题跟踪 (Issue Tracking)
# Issue功能
- 创建和管理任务
- 标签分类
- 里程碑
- 指派负责人
- 时间跟踪
- 关联合并请求
- 看板视图 (Board)
# Issue模板
# .gitlab/issue_templates/Bug.md
## 问题描述
## 复现步骤
1.
2.
3.
## 期望行为
## 实际行为
## 环境信息
- 操作系统:
- 浏览器:
- 版本:
4. 容器镜像仓库
# GitLab内置容器镜像仓库
# 登录镜像仓库
docker login registry.gitlab.com
Username: your-username
Password: your-access-token
Login Succeeded
# 构建并推送镜像
docker build -t registry.gitlab.com/username/project:latest .
docker push registry.gitlab.com/username/project:latest
# 拉取镜像
docker pull registry.gitlab.com/username/project:latest
5. 安全扫描
# GitLab提供多种安全扫描
# .gitlab-ci.yml 安全扫描配置
include:
- template: Security/SAST.gitlab-ci.yml
- template: Security/Dependency-Scanning.gitlab-ci.yml
- template: Security/Container-Scanning.gitlab-ci.yml
- template: Security/Secret-Detection.gitlab-ci.yml
# 扫描类型
- SAST: 静态应用安全测试
- DAST: 动态应用安全测试
- Dependency Scanning: 依赖漏洞扫描
- Container Scanning: 容器镜像扫描
- Secret Detection: 密钥泄露检测
- License Compliance: 许可证合规
GitLab界面导航
# 项目主页结构
项目名称/
├── 概览
│ ├── 详情 (README)
│ ├── 活动
│ └── 发布
├── 代码
│ ├── 文件
│ ├── 提交
│ ├── 分支
│ ├── 标签
│ ├── 贡献者
│ └── 图表
├── 问题 (Issues)
├── 合并请求 (Merge Requests)
├── CI/CD
│ ├── 流水线
│ ├── 作业
│ ├── 编辑器
│ └── 计划
├── 安全性
├── 部署
│ ├── 环境
│ └── 发布
├── 包与镜像
│ ├── 容器镜像库
│ └── 软件包库
├── 基础设施
├── 监控
├── 分析
└── 设置
GitLab工作流程
# GitLab推荐的工作流程 (GitLab Flow)
1. 创建Issue描述需求
Issues > New issue
2. 从Issue创建分支
Issue页面 > Create merge request and branch
3. 本地开发并提交
git checkout feature-branch
git add .
git commit -m "feat: implement feature"
git push origin feature-branch
4. 创建合并请求 (Merge Request)
- 填写描述
- 指定审查者
- 关联Issue: Closes #123
5. 代码审查
- 审查者评论代码
- 开发者根据反馈修改
- 审查者批准
6. CI/CD自动运行
- 自动构建
- 自动测试
- 所有检查通过
7. 合并到主分支
- 点击Merge
- 自动关闭关联Issue
- 触发部署流水线
快速开始
# 1. 注册账号
# 访问 https://gitlab.com/users/sign_up
# 2. 创建新项目
# 点击 New project > Create blank project
项目名称: my-first-project
可见性: Private / Public
初始化README: 勾选
# 3. 克隆到本地
git clone https://gitlab.com/username/my-first-project.git
cd my-first-project
# 4. 添加代码
echo "# My Project" > README.md
git add .
git commit -m "Initial commit"
git push origin main
# 5. 查看结果
# 返回GitLab页面刷新即可看到提交
总结
本文介绍了GitLab的核心概念和主要功能,包括代码管理、CI/CD、问题跟踪等。GitLab是一个功能完整的DevOps平台,适合从个人到企业的各种规模团队。
下一篇我们将学习如何在Linux系统上安装GitLab。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。







