Git GitLab介绍
Git 是工具,GitLab 是使用这个工具的“工厂”或“协作平台”。
它们是完全不同层面的东西,但紧密相关。下面是详细的对比:
1. Git - 版本控制系统(核心工具)
本质:一个开源的分布式版本控制软件,由 Linus Torvalds 创建。
作用:它像一台“时间机器”,在你的本地电脑上管理文件(尤其是代码)的所有修改历史。你可以创建保存点(提交)、回到过去、创建分支进行实验等。
工作方式:主要通过命令行(git init, git commit, git push 等命令)在本地操作。
关键点:Git 本身不提供网页界面、不管理用户权限、也没有“Pull Request”功能。它只是一个本地命令行工具。
2. GitLab - 基于 Git 的 DevOps 平台(协作平台)
本质:一个基于 Git 构建的完整的Web 协作平台和 DevOps 生命周期管理工具。
作用:它提供了一个中央服务器(你可以用 GitLab.com 的云服务,或自己搭建),让团队能共同使用 Git。它围绕 Git 仓库添加了所有协作功能。
核心功能(Git 不具备的):
网页图形界面:浏览代码、提交历史、对比差异。
代码托管:存储你的 Git 仓库的中央远程服务器。
协作功能:Merge Request(合并请求,类似 GitHub 的 Pull Request)、代码评审、问题跟踪、Wiki 文档。
DevOps 流水线:内置强大的 CI/CD(持续集成/持续部署)工具,自动化测试和部署。
用户与权限管理:精细的团队和项目权限控制。
核心关系比喻
Git 是引擎,GitLab 是整车。
Git 是单机游戏,GitLab 是联机对战平台。
Git 管理本地历史,GitLab 管理团队协作和流程。
主要区别总结表
特性 | ||
GitGitLab类型 | ||
版本控制工具/软件基于 Git 的 Web 平台/服务安装位置 | ||
安装在你的本地电脑上部署在服务器上(或使用 gitlab.com)主要界面 | ||
命令行终端 (CLI)网页浏览器 (Web UI)核心功能 | ||
本地版本控制(提交、分支、合并)代码托管、协作评审、CI/CD、项目管理协作 | ||
本身不支持,需配合远程仓库(如 GitLab)原生支持团队协作(MR、Issue、权限)网络需求 |
本地操作无需网络;同步需要网络主要通过网络访问一个简单的使用流程说明两者的关系:
你在本地用 Git 命令 git commit 保存代码。
你用 Git 命令 git push 将本地提交推送到远程的 GitLab 服务器。
你的同事在 GitLab 网站上通过网页创建 Merge Request 请求合并他的修改。
你在 GitLab 的网页上评审他的代码,并通过点击按钮完成合并。
你用 Git 命令 git pull 将合并后的最新代码拉取到本地。
总结:你使用 Git(工具)在本地操作版本,而使用 GitLab(平台)来存储代码中心副本并实现团队协作。 类似 GitLab 的平台还有 GitHub 和 Bitbucket。
