Git、GitHub 和 GitLab 经常同时出现,但它们并不是同一个概念
Git#
Git 是一款免费的、开源的分布式版本控制系统,最初由 Linux 操作系统创始人 林纳斯·托瓦兹 (Linus Torvalds) 于 2005 为了开发 Linux 核心所设计。
它安装在开发者的计算机中,通过命令行或图形化客户端运行。
常见 Git 命令包括:
git init
git add
git commit
git branch
git merge
git push
git pull笔记
Git 本身不要求必须连接互联网,也不依赖 GitHub 或 GitLab。
GitHub#
GitHub 是一个基于 Git 的代码托管和协作平台。该平台于2018年被微软以75亿美元正式收购,在被收购七年后的2025年,GitHub正式结束了独立运营状态,全面并入微软新成立的CoreAI工程集团,成为微软AI时代的关键一环。
它主要提供:
远程 Git 仓库
Pull Request
Issue
Actions 自动化
项目管理
代码评审
开源项目托管
团队权限管理GitHub 可以理解为一个提供 Git 仓库存储和协作功能的平台。
GitLab#
GitLab 同样是一个基于 Git 的代码托管和研发协作平台。与主要面向个人开发者和开源项目的 GitHub 不同,GitLab 更偏向于完整的 DevOps 生命周期,并且支持企业自建私有化部署。
它通常提供:
远程 Git 仓库
Merge Request
Issue
CI/CD
代码评审
权限控制
项目管理
私有化部署很多企业会把 GitLab 部署在公司内部服务器中,用于管理内部代码。
三者的关系#
Git:版本控制工具 GitHub:提供 Git 仓库托管和协作服务的平台 GitLab:提供 Git 仓库托管和研发流程管理的平台
Git 是基础工具,GitHub 和 GitLab 是建立在 Git 之上的平台。
GitHub 与 GitLab 常见术语区别#
GitHub 常用:
Pull RequestGitLab 常用:
Merge Request两者本质相似,都是申请把一个分支的代码合并到另一个分支。
例如:
feature/new
↓
main开发者完成相应的功能开发后,可以创建 Pull Request 或 Merge Request,请求团队成员进行代码评审并合并。