跳至内容

什么是 Git?——Git 全面指南

了解最流行的版本控制系统,以及它为何是数据科学家和程序员的必备协作工具。
已更新 2026年10月5日  · 14分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity


如果您曾阅读过有关编码、编程或软件开发的内容,您一定听说过 Git。

这个实用(且免费的)工具是全球最流行的版本控制系统。它如此受欢迎,以至于超过 90% 的职业开发者都在使用,更不用说其他领域的专业人士了。

在许多情况下,Git 几乎就等同于版本控制本身。但什么是版本控制?它为何如此重要?

加入我们,一起深潜 Git 宇宙。在这里,我们将全面了解 Git:它是什么、谁在用,以及它的历史。

什么是 Git?

Git 是一种分布式版本控制系统(dVCS)。顾名思义,版本控制的核心就是对某个项目的不同版本进行控制与跟踪。 

什么是版本控制系统(VCS)?

VCS 会跟踪并记录对任意文件(或一组文件)所做的更改,使您能够在之后或需要时回溯到特定迭代。VCS 有时也被称为源代码管理(SCM)或修订控制系统(RCS)。

版本控制让众多团队成员可以协作完成同一个项目,即使他们不在同一个房间,甚至不在同一个国家。 

比如,假设您是一名词曲作者。您在家中忙着打磨一首新歌,但总觉得还不够满意,于是决定与另外两位作者合作,攻克需要改进的部分。

您和另外两位作者分别独立地对歌词和曲谱进行调整。当对方把他们的版本发给您时,您喜欢其中一些改动,但不是全部。

现在想象一下,您可以看到每个版本中的每一处更改,试着听听效果,然后把自己喜欢的改动在各个版本间同步。

这正是 Git 所允许的。个人可以在本地(自己的电脑上)开展项目工作,保存有效的更改,然后将这些更改同步到 Git 仓库,方便他人查看他们的最新版本。

人们通常把 Git 看作一个软件开发工具,确实如此,但它也可以对任何类型的文件进行版本控制——无论是代码、网站新设计的版式,还是一首歌。 

版本控制的优势

除了能用于协作之外,版本控制还有其他一些好处:

  • 可归属的更改。每一次更改都可以明确归属到某位团队成员。 
  • 细致跟踪,便于回滚。由于每一处更改(哪怕很小)都会被追踪,因此需要时可以轻松回退到早期版本。可以想见,这在软件开发中尤为关键。
  • 更好的组织与沟通。提交信息(向团队说明为何进行某次更改的消息)能够促进团队成员之间的高效沟通。如果您一时想不起之前改了什么,它也能帮大忙!
  • 并行性。在软件项目中,开发者会频繁修改源代码。通常有许多开发者在做不同的事:有人为提升安全性优化现有代码,有人开发新功能。Git 让这些开发者可以并行工作,同时尽量避免彼此改动之间的冲突。 
  • 分支与合并。团队成员可以创建独立分支开展工作,随后将更改合并回主分支。分支是临时的,合并后可删除。 

Git 是唯一的版本控制系统吗?

不是。Git 并非唯一的 VCS,但它最为流行,被视为事实上的标准工具。其他常见的版本控制系统包括 Fossil、Mercurial 和 Subversion。 

不同系统之间存在一些差异,包括它们处理分支与合并等核心功能的方式,但总体理念相同。它们的主要区别在于系统是集中式还是分布式。 

集中式与分布式版本控制系统

无论是集中式还是像 Git 这样的分布式系统,功能目标都是一致的。 

关键区别在于,集中式系统有一个中心服务器,团队成员把自己工作的最新版本推送到那里。可以把它理解为大家共享的一个中心项目。 

在分布式 VCS 中,团队成员在各自的设备上拥有整个项目历史的本地副本(克隆),因此他们无需联网也能进行修改或编写代码。他们从在线仓库获取这个克隆,而不是从中心服务器。

当开发者使用 Git 时,每位成员对项目的克隆都是一个仓库,里面可以包含自项目开始以来的所有更改。

Git 的历史

Git 由芬兰软件工程师林纳斯·托瓦兹于 2005 年开发,他也是 Linux 操作系统内核的缔造者。

Git 的诞生源于一个迫切需求。在它出现之前,全球的 Linux 开发者使用的是专有软件 BitKeeper(本身也是分布式 VCS)。 

由于该软件归公司所有,这在以倡导开源精神为主的 Linux 开发者中引发了一些争议。 

作为免费使用的交换,BitKeeper 背后的公司 BitMover 对 Linux 社区施加了限制。据 Linux Journal 报道,其中一项限制是他们不得参与竞争性版本控制项目的开发。 

或许在所难免地,一位 Linux 开发者开始对 BitKeeper 进行逆向工程,试图打造一个开源产品。BitMover 信守承诺,停止向 Linux 内核提供服务,分布式开发体系因此陷入不确定性。

为解决这一难题,托瓦兹自 1991 年以来首次暂停了对 Linux 的工作,转而创建 Git。在开始开发后的短短数月内,他就发布了稳定版本。 

有趣的是,在 Linux 内核最初采用 BitKeeper 之前,开发者会把补丁(更改)独立发送给托瓦兹,他再视需要进行集成。而在 Git 发布 11 年后的 2016 年,BitKeeper 也转为开源。 

Git 这个名字的来历

在 2005 年林纳斯·托瓦兹对 Git 的首次代码提交中,他附上了一份自述文件,其中透露了该程序为何命名为 Git。以下是其中一部分:

除非您更偏好“Global Information Tracker(全局信息跟踪器)”这种更“体面”的解释,否则 Git 这个名字其实是一种俏皮的自嘲,既指其能力,也暗指其“可能的不足”。 

VCS 的历史

版本控制系统的历史比 Git,甚至比 BitKeeper 还要久远。我们快速浏览一下时间线:

  • 1972 年——贝尔实验室创建了第一个 VCS:SCCS,它与今天的系统相去甚远。
  • 1982 年——普渡大学的一位计算机科学家开发了修订控制系统(RCS)。
  • 1986 年——并发版本系统(CVS)问世。这是首个提供可供多用户访问的集中式仓库的 VCS。
  • 1995 年——至今仍受欢迎的 VCS Perforce 被开发出来。
  • 2000 年——更为复杂的系统 Subversion(也称 SVN)出现。同时还有 BitKeeper,这是最早的分布式 VCS 之一,也是让分布式系统流行起来的产品。
  • 2005 年——Git 被发明,并迅速成为全球开发者的首选。 

Git 与 GitHub、版本控制与仓库

Git 与 GitHub 是相辅相成的技术。Git 是版本控制系统,而 GitHub 是一个云端托管服务,帮助团队管理他们的仓库。 

GitHub 于 2008 年设计推出,旨在让使用 Git 的协作编码更轻松。这个软件即服务(SaaS)平台在这方面表现出色,最终吸引了全球数以百万计的用户。 

除了提供 Git 的标准版本控制功能外,GitHub 还具备自己的特性,比如缺陷跟踪、任务管理工具和持续集成(CI)。GitHub 采用增值免费模式;用户可免费使用许多功能,但需要订阅付费版才能解锁全部功能。自 2018 年起,GitHub 被 微软收购。 

GitHub 并非唯一的仓库托管服务,但凭借数百万用户和数亿个依赖该平台的项目,它无疑是全球最受欢迎的。您可以在 GitHub 上找到许多知名公司,包括 DataCamp。 

竞品包括为 Git 而生、完全免费开源的 GitLab,以及同时支持 Git 和 Mercurial 代码管理的 Bitbucket。

我们之前提到,Git 和版本控制并不只用于编码和软件开发;GitHub 也是如此,但后者并未针对非编码项目进行优化。

Git 不只是软件开发工具

凡是需要版本控制的协作项目,都可以使用 Git,例如撰写大型用户手册,甚至创作教堂音乐(后者是真实项目,您可以在 GitHub 上查看)。

尽管 Git 主要与软件开发的“底层实现”相关,但相关领域的人也经常使用它。以数据科学家和分析师为例:他们需要一种方式来管理支撑其工作的代码,而 Git 正好提供了这样的能力。 

在 DataCamp,我们教授人们处理数据所需的工具与技术,包括 Git。我们一系列沉浸式、富有互动性的 Git 课程都在这里。

为什么 Git 如此流行?

Git 之所以流行,原因很多,其中之一是它免费且开源。

  • 速度快。Git 很快,尤其考虑到开发者会对整个仓库进行分支与合并。由于团队中每个人都有自己的本地副本,无需为每个小改动都等待推送到服务器。
  • 精细的更改跟踪。Git 提供极其细致的版本记录,哪怕是最小的更改也会被提交,开发者还可以留下带时间戳的注释,解释每次更改的原因。
  • 离线工作。有了完整仓库的本地副本,用户在准备提交更改之前都无需联网。 
  • 普及度高。如今,Git 的普及反过来又进一步推动了它的流行。超过 90% 的开发者使用 Git。如果公司知道所有开发者都熟悉 Git,就没有太多理由去用别的工具。
  • 协作性强。Git 促进协作,让合并同一项目的不同版本变得简单,同时最大程度减少冲突的可能。再加上 GitHub,开发者便拥有了灵活敏捷的协作编码生态,助力他们的工作。

Git 如何工作?

要真正理解 Git 的强大与高效,我们需要了解它的一些技术细节。以下是 Git 的工作机制概览:

  1. 仓库(Repo)。Git 仓库是存放某个项目所有文件的目录,其中包含项目的全部修订与历史。在某个目录中初始化 Git(git init)后,该目录就成为一个仓库。
  2. 提交(Commit)。您在 Git 中最终确定的每次更改或一组更改称为一次提交。每个提交都有一个唯一的 ID(SHA-1 哈希),用于让 Git 追踪更改及其发生的先后顺序。
  3. 暂存区。在通过提交最终确定更改之前,您需要先“暂存”它们。暂存区就像提交前的草稿空间。要把文件加入暂存区,您需要使用 git add 命令
  4. 分支。Git 允许您通过分支创建多条开发线。默认分支叫做 master。当您要开发新功能或修复缺陷时,可以创建新分支(git branch <branch-name>),将更改封装起来而不影响主线开发。
  5. 合并。在某个分支上完成更改后,您可以使用 git merge 命令将这些更改合并回 master 分支(或其他分支)。
  6. 远程仓库。在本地开发的同时,Git 还允许您使用 git remote 命令连接到远程仓库,这对协作尤为有用。如前所述,最常见的远程仓库是 GitHub。
  7. 推送与拉取。连接到远程仓库后,您可以将更改 push 到远端,方便他人查看并协作。同样,您也可以从远端 pull 更改,以便用最新更新同步本地版本。
  8. 获取(Fetch)。与 pull 类似,git fetch 命令可从远程仓库获取更新,但不会自动将更改合并到当前分支。这让您可以在集成前先行审查。
  9. 克隆。如果您想获得某个现有 Git 仓库的副本,可以使用 git clone 命令。它会在您的机器上创建一个包含该仓库所有文件与历史的新目录。
  10. 冲突解决。当多人修改同一段代码时,可能会产生冲突。Git 内置机制会标示这些冲突,允许开发者在最终合并前手动解决。
  11. 日志。要查看提交历史,Git 提供 git log 命令。它会显示提交列表、各自的唯一 ID 以及关联的提交信息。

理解这些技术细节为使用 Git 打下基础。随着您对这些概念与命令日益熟悉,您会更加体会到 Git 在版本控制方面的灵活性、强大与高效。

想要“Git”起步吗?

Git 是全球最受欢迎的分布式 VCS,它革新了软件开发者及相关领域从业者的项目管理方式。

从 Google 到 Netflix,以及众多其他公司,都将 Git 作为技术栈的标准组成部分。Git 的普及度之高,意味着只要是与软件或代码相关的项目,基本都可以默认包含 Git。 

它也是数据从业者(如数据分析师和数据科学家)的必备技能。毕竟,我们需要一种方式来为处理数据、获取洞见以及构建辅助工具的代码进行版本管理。

Git 是事实上的 VCS 标准;如果您想从事 IT 或任何相邻领域,它都是必备技能。虽然 Git 并不以“简单”著称,但掌握基础并在实践中逐步深化并不难,您可以在 Git 宇宙中不断精进。 

DataCamp 可以助您一臂之力。我们的 Introduction to Git 课程旨在以有趣且引人入胜的方式教授 Git 的核心要点。当您掌握进度后,或许还可以考虑获取 GitHub 认证,展示您的技能。 

想知道为什么全球超过九百万学习者钟爱 DataCamp?立即报名您的第一门 Git 课程吧!

常见问题

Git 的主要用途是什么?

Git 是一种分布式版本控制系统,旨在跟踪软件开发过程中源代码的更改。它允许多位开发者同时在同一项目上工作,并确保他们的更改彼此不冲突。

Git 与其他版本控制系统有何不同?

Git 是分布式版本控制系统,这意味着每位开发者在本地机器上都拥有完整的项目历史副本。这不同于集中式系统,后者只有一个中心仓库,开发者需要从中检出代码。

Git 只适用于软件开发者吗?

虽然 Git 主要与软件开发相关,但其版本控制能力同样适用于多种项目,包括文档、设计、写作等。

Git 与 GitHub 之间是什么关系?

Git 是版本控制系统,而 GitHub 是托管 Git 仓库的云平台。GitHub 还提供缺陷跟踪、任务管理和协作工具等附加功能。

使用 Git 需要保持在线吗?

不需要。Git 的优势之一是您可以在本地仓库离线工作。只有当您要将更改推送到远程仓库或从中获取更新时,才需要连接互联网。

Git 的安全性如何?

Git 内置多种机制以确保代码的完整性与真实性。比如提交签名等功能会使用密码学方法来验证提交的来源与完整性。

如何开始学习 Git?

我们的 Introduction to Git 课程是全面理解如何使用 Git 进行版本控制的理想起点。 

主题
Git
数据素养