
GitHub 到 GitLab 迁移指南你已经学完了 GitHub 教程现在要进入企业级 GitLab 世界。本文档帮你快速理解两者的核心区别。 一句话总结GitHub 开源社区 个人开发者 GitLab 企业私有部署 团队协作 核心区别对照表维度GitHubGitLab定位开源社区平台企业级 DevOps 平台部署方式只有 SaaSgithub.comSaaS 私有部署企业内网代码可见性默认公开开源友好默认私有企业友好CI/CDGitHub Actions独立产品内置 GitLab CI/CD代码审查Pull Request (PR)Merge Request (MR)Issue 跟踪GitHub IssuesGitLab Issues Boards包管理GitHub PackagesGitLab Package Registry容器注册GitHub Container RegistryGitLab Container RegistryWiki仓库内置 Wiki仓库内置 Wiki安全扫描需要第三方工具内置 SAST/DAST 扫描 概念映射表你在 GitHub 学的概念在 GitLab 里叫什么GitHub 概念GitLab 对应说明Repository (Repo)Project都是代码仓库叫法不同Pull Request (PR)Merge Request (MR)都是代码合并请求功能一样ForkFork概念相同但企业内部很少用 ForkGitHub ActionsGitLab CI/CD都是 CI/CD 工具GitHub IssuesGitLab Issues几乎一样GitHub PagesGitLab Pages功能类似配置略不同OrganizationGroup都是团队/组织GitHub CLI (gh)GitLab CLI (glab)命令行工具SecretsCI/CD Variables都是敏感信息管理Branch Protection RulesProtected Branches分支保护 企业为什么更常用 GitLab1. 私有部署最关键GitHub: 代码存在 github.com微软服务器 → 企业担心数据安全 GitLab: 可以部署在企业内网 → 代码完全自己掌控 → 满足合规要求如金融、政府2. 一体化 DevOps 平台GitHub 的做法 代码托管 → GitHub CI/CD → GitHub Actions 容器 → Docker Hub 监控 → 第三方工具 → 需要集成很多工具 GitLab 的做法 代码托管 CI/CD 容器 监控 安全扫描 → 全家桶一站式解决3. 权限控制更细GitHub: - 仓库级别权限Read/Write/Admin - 相对简单 GitLab: - Group → Subgroup → Project 多层嵌套 - 保护分支、保护 Tag - MR 审批流程可配置 - 适合大型企业复杂组织架构 工作流对比GitHub 工作流# 1. Fork 仓库或有写权限直接 clonegitclone gitgithub.com:your-username/repo.git# 2. 创建分支gitcheckout-bfeature/my-feature# 3. 开发并推送gitadd.gitcommit-mfeat: 添加新功能gitpush origin feature/my-feature# 4. 在 GitHub 上创建 Pull Request# 5. Code Review 合并GitLab 工作流企业内# 1. 直接 clone通常有写权限不需要 Forkgitclone gitgitlab.company.com:team/project.git# 2. 创建分支gitcheckout-bfeature/my-feature# 3. 开发并推送gitadd.gitcommit-mfeat: 添加新功能gitpush origin feature/my-feature# 4. 在 GitLab 上创建 Merge Request# 5. Code Review 合并核心区别企业内部通常不需要 Fork直接 clone 就有写权限合并请求叫MR不是 PRCI/CD 配置文件是.gitlab-ci.yml不是.github/workflows/️ CI/CD 配置对比GitHub Actions# .github/workflows/ci.ymlname:CIon:push:branches:[main]pull_request:branches:[main]jobs:test:runs-on:ubuntu-lateststeps:-uses:actions/checkoutv3-uses:actions/setup-nodev3with:node-version:16-run:npm install-run:npm testGitLab CI/CD# .gitlab-ci.ymlstages:-test-build-deploytest:stage:testimage:node:16script:-npm install-npm testonly:-branchesbuild:stage:buildimage:docker:latestscript:-docker build-t my-app:$CI_COMMIT_SHA .only:-main配置文件对比项目GitHub ActionsGitLab CI/CD配置文件路径.github/workflows/xxx.yml.gitlab-ci.yml触发方式on: push/pull_requestonly: branches/tags运行器GitHub-hosted / Self-hostedGitLab Runner变量管理SecretsCI/CD Variables缓存actions/cachecache:关键字 认证方式对比GitHub SSH 配置# 生成密钥ssh-keygen-ted25519-Cyour-emailexample.com# 添加到 GitHub 网站# 测试连接ssh-Tgitgithub.comHi username!Youve successfully authenticatedGitLab SSH 配置# 生成密钥完全一样ssh-keygen-ted25519-Cyour-emailcompany.com# 添加到 GitLab 网站# 测试连接ssh-Tgitgitlab.company.comWelcome to GitLab, username!区别SSH 配置方法完全一样只是服务器地址不同github.com vs gitlab.company.com企业 GitLab 通常是内网地址 常用命令对照# 克隆仓库github:gitclone gitgithub.com:user/repo.git gitlab:gitclone gitgitlab.company.com:group/project.git# 推送分支github:gitpush origin feature/xxx gitlab:gitpush origin feature/xxx# 完全一样# 查看 MR/PR命令行工具github: ghprlist gitlab: glab mr list# 创建 MR/PR命令行工具github: ghprcreate gitlab: glab mr create# 查看 CI/CD 状态github: gh run list gitlab: glab ci list 你需要调整的习惯从 GitHub 迁移到 GitLab你需要做的改变Pull Request改口叫Merge Request (MR).github/workflows/改为.gitlab-ci.ymlactions/checkout改为 GitLab CI 的scriptFork 工作流企业内通常直接 clone 分支GitHub CLI (gh)安装 GitLab CLI (glab)Secrets改用 CI/CD Variablesmain分支可能叫master看公司规范 快速开始1. 注册/登录 GitLab如果你是去公司实习 → 公司会给你分配 GitLab 账号 → 地址通常是 gitlab.company.com 或内网 IP 如果是自己练习 → 注册 https://gitlab.com 公共 GitLab → 或者用公司提供的测试环境2. 配置 SSH和 GitHub 一样# 如果你之前已经配置过 GitHub SSH# 可以复用同一个密钥也可以生成新的# 复用已有密钥# 把 ~/.ssh/id_ed25519.pub 的内容添加到 GitLab 网站# 或者生成新密钥ssh-keygen-ted25519-Cyour-emailcompany.com-f~/.ssh/gitlab_rsa3. 配置 Git 用户信息# 如果公司用公司邮箱gitconfig--globaluser.name你的名字gitconfig--globaluser.emailyour-namecompany.com 学习路径建议你已经学完了 GitHub 教程接下来学习 GitLab 文档时01-Git核心概念与企业环境配置 → 跳过 Git 基础你已经会了 → 重点看SSH 配置企业环境、.gitignore 02-企业分支管理策略 → 重点看Git Flow、分支命名规范 → 这是企业最常用的工作流 03-Git工作流实战 → 重点看日常开发流程、Commit 规范 04-团队协作与Code Review → 重点看MR 全流程、分支保护 05-企业级CI-CD与代码质量 → 重点看.gitlab-ci.yml 配置 → 这是和 GitHub Actions 最大的不同 06-Git高级技巧与故障排查 → 重点看reflog、reset、revert 07-完整实战场景演练 → 综合练习 总结你已经掌握的 GitHub 知识 ✅ Git 基础命令clone, add, commit, push, pull ✅ 分支管理创建、切换、合并 ✅ SSH 配置 ✅ Pull Request 流程 ✅ GitHub Actions 基础 迁移到 GitLab 只需要改变 PR → MR .github/workflows/ → .gitlab-ci.yml GitHub Actions → GitLab CI/CD gh CLI → glab CLI 公开仓库 → 私有仓库好消息Git 命令本身是通用的你在 GitHub 学的所有 Git 操作在 GitLab 里完全一样。现在开始学习 GitLab 教程吧 01-Git核心概念与企业环境配置