Git 历史
Git 的历史和 Linux Kernel 是绑定在一起的,两个伟大的开源软件相互成就,成为二十一世纪开源在全世界发展壮大的原(源)动力。
Linux 和 BitKeeper 的故事
早期 Linus Torvalds 并没有使用任何的版本管理工具, Kernel 的贡献者把 Patch 通过 Usernet Group 发布出来,也就是后来开源开发者普遍使用的邮件列表 ( Mailling List ) ,由 Linus 本人合并到 Kernel 代码中并发布出来。如果需要看到提交的历史记录, 就需要在两个巨大的发布版本中进行比较。社区迫切需要一个版本管理工具, Linus 既不喜欢已经在社区开始流行的 CVS ,也不喜欢 Subersion ,而是在 2002 年选择了 BitMover 的商业版本版本管理工具 BitKeeper 。
一个伟大的开源项目和社区,必然与商业版本管理工具之间存在着很多不可调和的矛盾。 BitMover 对 Linux 社区增加了很多限制,诸如 Linux 内核开发者不能从事和 BitKeeper 竞争的版本管理工具开发。 2005 年另一位伟大的开发者 Andrew Tridgell ( Samba 和 rsync 的开发者 ) 试图对 BitKeeper 的网络协议进行逆向工程,以开发一个自由软件替代 BitKeeper ,这时 BitMover 的创始人 Larry MaVoy 停止了对 Linux Kernel 项目的支持。
Git 的诞生
就在这个时刻, Linus Torvalds 停止了对 Linux Kernel 的开发,投入到新的版本管理系统的设计和开发中。 2005 年 6 月 16 日, Linus 在 Linux Kernel Mailling List 上发布了 Git 的第一个版本, 并把它交给 Junio C. Hamano 进行维护。 短短几个月 Git 就可以完全做到管理 Linux Kernel 的开发过程。
在这个过程中, Darcs、Arch 和 Monotone 都希望自己成为 Kernel 开发的版本管理工具,但是都没有得到 Linus 的认可,这也是最终导致 Linus 设计和开发 Git 的原因。