跳到主要内容

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 分支)。