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 的流行和社区发展。
2009
Git 1.6.2 发布,命令调 用方式由 git-xxx
改为现代的 git xxx
,子模块支持增强。
2010
Git 1.7.0 默认启用颜色提示(color.ui
),改善合并提示,用户体验提升。
2012
Git 1.7.10 引入 credential helper
,支持用户名密码自动保存。
2013
Git 1.8.2 引入 git rerere
功能,记录并自动重用冲突解决方案;增强对 Windows 的兼容性。
2015
Git 2.4 发布,支持 push.followTags
等更灵活的配置项,提升了 CI/CD 场景下的易用性。
2016
Git 2.9 引入 interactive.diffFilter
,自定义 diff 呈现;默认启用 core.precomposeUnicode
,解决 macOS 下的编码问题。
2018
Git 2.16 针对大型仓库做了显著性能优化,git status
速度更快。
2020
Git 2.28 支持设置默认分支名:init.defaultBranch
(如 main
),开始推动远离 master
命名。
2021
Git 2.32 改进 sparse-checkout 支持,为 monorepo 场景带来更高效率。
2023
Git 2.40 支持更复杂的 sparse-checkout 规则,rebase
体验增强。
2024
Git 2.44 引入 scalar
工具,为大型仓库集中管理优化操作。提升 gc
、packfile 等性能。
自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统(参见 Git 分支)。