跳到主要内容

Git简史

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

2005

Git 项目诞生。Linus Torvalds 为了替代 BitKeeper,仅用两周写出 Git 初版。
Git 1.0 发布,已支持基本的版本控制功能(分支、合并等)。

2007

Git 1.5.3 发布,新增 git stash,用户体验开始受到关注。

2008

GitHub 上线,极大推动了 Git 的流行和社区发展。

2010

Git 1.7.0 默认启用颜色提示(color.ui),改善合并提示,用户体验提升。

2012

Git 1.7.10 引入 credential helper,支持用户名密码自动保存。

2013

Git 1.8.2 引入 git rerere 功能,记录并自动重用冲突解决方案;增强对 Windows 的兼容性。

2016

Git 2.9 引入 interactive.diffFilter,自定义 diff 呈现;默认启用 core.precomposeUnicode,解决 macOS 下的编码问题。

2018

Git 2.16 针对大型仓库做了显著性能优化,git status 速度更快。

2019

Git 2.23 发布,首次引入现代命令:

  • git switch 用于切换分支
  • git restore 用于恢复工作区文件
    这两个命令共同替代原本复杂的 git checkout

2021

Git 2.32 改进 sparse-checkout 支持,为 monorepo 场景带来更高效率。

2023

Git 2.40 支持更复杂的 sparse-checkout 规则,rebase 体验增强。

2024

Git 2.44 引入 scalar 工具,为大型仓库集中管理优化操作。提升 gc、packfile 等性能。


自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统(参见 Git 分支)。