Git 简介与历史

在动手装环境之前,我们先认识一下 Git 到底是什么、为什么每个程序员都要学它、它是怎么诞生的。理解了背景,后面学命令时会更有的放矢。

Git 是什么?

Git 是一款分布式版本控制系统(Distributed Version Control System, DVCS)。简单说,它是一个"时光机 + 协作中枢":能记录你项目里每一个文件的每一次修改,随时回到任意历史版本,还能让几十、几百人同时开发同一个项目而不互相覆盖。

如果你写过代码,一定体会过这种恐惧:"刚才删的那段代码,万一以后要用呢?"——于是 main_final_v2_真的最终版.py 满天飞。Git 就是为终结这种混乱而生:你只需要 commit(提交),它就帮你存一个快照,随时能回退、能对比、能分支。

诞生故事:Linus 的两周杰作

Git 的诞生有点戏剧性。它的作者 Linus Torvalds 同时也是 Linux 之父。2002 年到 2005 年间,Linux 内核社区使用一款商业版本控制工具 BitKeeper,BitKeeper 公司免费给开源社区使用。但 2005 年,社区里有人尝试反向工程 BitKeeper 的协议,BitKeeper 公司一怒之下撤销了免费许可。

当时没有现成的分布式版本控制工具能满足 Linux 内核的需求(超大规模、几万名贡献者、超高频合并)。Linus 一怒之下,决定自己写一个。他在 2005 年 4 月 3 日开始动手,仅仅用了大约两周就写出了 Git 的核心,4 月 7 日 Linux 内核源码就开始用 Git 管理。Linus 后来回忆说,他的目标只有一个:

Git 这个名字是 Linus 自己起的,他自嘲说:"我是个骄傲的混蛋,我把我所有项目都命名为自己。Git 在英国俚语里就是'令人不快的人'。"——和 Linux、Linux 一样,都带他的名字。但这个"自黑"的名字很快超越了内核圈。

分布式 vs 集中式

要理解 Git 的革命性,得对比一下老一代的集中式版本控制系统(如 SVN、CVS)。它们有一个"中央服务器",所有历史都存在服务器上,开发者每次操作都要联网:

这就是为什么 Git 在 2008 年 GitHub 上线后彻底引爆——它把"版本控制"从痛苦变成了享受。

Git 的三大设计亮点

核心概念:三个区域与三种状态

理解 Git 最关键的一步,就是搞懂它的三个区域。这是新手最容易迷糊、但搞懂后就一通百通的概念:

为什么要分三步?因为很多时候你改了 5 个文件,只想提交其中 3 个——暂存区让你能精细挑选哪些改动进这一次提交,让历史更清晰、更有意义。

# Git 的三个区域:工作区 → 暂存区 → 仓库
#
# 1. 工作区(Working Directory)
#    你眼睛看到的文件夹,直接编辑的文件就在这里
echo "hello" > a.txt          # 在工作区新建/修改文件

# 2. 暂存区(Staging Area / Index)
#    用 git add 把工作区的改动"标记为待提交"
git add a.txt                  # a.txt 进入暂存区

# 3. 仓库(Repository)
#    用 git commit 把暂存区的改动"永久写入历史"
git commit -m "add a.txt"      # 改动永久进入仓库

# 查看当前状态:哪些文件在哪个区
git status

GitHub 与 Git 的关系

新手常把 Git 和 GitHub 混为一谈。其实它们是两回事:

打个比方:Git 是录音机,GitHub 是网易云音乐。你可以用录音机自己录,也可以上传到网易云分享给全世界。今天 GitHub 上托管着超过 4 亿个仓库,是全球最大的程序员社区。

学完 Git 能做什么?

← 返回 Git 教程目录

下一篇 Git 安装与配置

✈️💬