历史上最伟大的一次 Git 代码提交

2021-12-10 16:30:12 浏览数 (1)

每天看着 star 数的上涨我心里非常的开心,希望越来越多的 Java 爱好者能因为这个开源项目而受益,而越来越多人的 star,也会激励我继续更新下去~

大家都知道,Linux 内核是开源的,参与者众多,到目前为止,共有两万多名开发者给 Linux Kernel 提交过代码。

但在 1991 年到 2002 年期间,Linus 作为项目的管理员并没有借助任何配置管理工具,而是以手工方式通过 patch 来合并大家提交的代码。

倒不是说 Linus 喜欢手工处理,而是因为他对代码版本管理工具非常挑剔,无论是商用的 clearcase,还是开源的 CVS、SVN 都入不了他的法眼。

直到 2002 年,Linus 才相中了一款分布式版本控制系统 BitKeeper,虽然是商用的,但 BitKeeper 愿意让 Linux 社区免费使用,这让 Linus 非常开心和满意。

时间来到 2005 年,由于 BitKeeper 提供的默认接口不能满足 Linux 社区用户的全部需要,一位开发者在未经允许的情况下反编译了 BitKeeper 并利用了未公开的接口,于是 BitKeeper 的著作权拥有者拉里·麦沃伊就气愤地收回了 Linux 社区免费使用的权力。

没办法,Linus 只好自己硬着头皮上了。他对新的版本控制系统制订了若干目标:

  • 速度
  • 设计简单
  • 允许成千上万个并行开发的分支
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目

结果,令人意想不到的是,Linus 只用了 10 天时间就用 C语言完成了第一个版本,嗯。。神就是神。并且给这个版本起了一个略带嘲讽意味的名字——Git(在英式英语俚语中表示“不愉快的人”)。

源代码的自述文件有进一步的阐述:

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your way)

从 Git 的设计上来看,有两种命令:分别是底层命令(Plumbing commands)和高层命令(Porcelain commands)。一开始,Linus 只设计了一些给开源社区的黑客们使用的符合 Unix KISS 原则的命令,因为黑客们本身就是动手高手,水管坏了就撸起袖子去修理,因此这些命令被称为 plumbing commands。

Linus 在提交了第一个 git commit 后,就向社区发布了 git 工具。当时,社区中有位叫 Junio Hamano 的开发者觉得这个工具很有意思,便下载了代码,结果发现一共才 1244 行代码,这更令他惊奇,也引发了极大的兴趣。Junio 在邮件列表与 Linus 交流并帮助增加了 merge 等功能,而后持续打磨 git,最后 Junio 完全接手了 Git 的维护工作,Linus 则回去继续维护 Linux Kernel 项目。

Junio Hamano 觉得 Linus 设计的这些命令对于普通用户不太友好,因此在此之上,封装了更易于使用、接口更精美的高层命令,也就是我们今天每天使用的 git add, git commit 之类。Git add 就是封装了 update-cache 命令,而 git commit 就是封装了 write-tree, commit-tree 命令。

如果选历史上最伟大的一次 Git 代码提交,那一定是这 Git 工具项目本身的第一次代码提交。这次代码提交无疑是开创性的,如果说 Linux 项目促成了开源软件的成功并改写了软件行业的格局,那么 Git 则是改变了全世界开发者的工作方式和写作方式

如今,Git 已经成为全球软件开发者的标配。

0 人点赞