导读:Linus Torvalds 知道开发人员对 SCM 的需求:性能、防止数据损坏的保障以及分布式工作流。
20年前,Linus Torvalds编写了Git分布式版本控制系统。2005年4月7日,他进行了第一次提交。
为此,GitHub 在四月初举行了庆祝活动。GitHub 的软件工程师Taylor Blau对 Torvalds进行了一次采访。
第一个问题提供了一些关键的背景。托瓦兹是否还期望 20 年后还能使用和谈论 Git?
Linux 之父回答说,他原本预计自己还会继续使用Git,但“可能不会再提它”。令他惊讶的是,Git 不仅坚持了下来,还逐渐成为全球开发者源代码控制管理 (SCM) 领域的主导——因为“我把它视为解决我的问题的解决方案”。
那么接下来发生了什么?托瓦兹利用这次采访反思了所有学到的点滴经验——关于网络效应、工作流程以及简洁在解决问题中的重要性。他分享了自己的遗憾,但也表达了对未来的希望。
在采访结束时,他提到正在权衡 Git 是否真的改变了编程行为本身。
一份报告甚至声称 98% 的项目使用了 Git,尽管 Torvalds 说:“我不知道这是否属实。但它使用量确实很大! ”
还有其他选择(比如Pijul、Jujutsu、Piper)。他试过吗?Torvalds 已经准备好了答案。“没有。”
因为他已经有 Git 了,为什么还要这么干呢?
早在 2007 年, Torvalds 就在 Google 上发表过关于 Git 的早期演讲。有趣的是,他特意着重感谢了 BitKeeper——Linux 从 2002 年到 2005 年一直在使用这个版本控制系统。
在那次演讲中,Torvalds 对 BitKeeper 协调和合并广泛分布的贡献的能力表示赞赏。“BitKeeper 不仅是我觉得第一个值得使用的源代码控制系统,它还教会了我为什么使用 BitKeeper,以及如何实际操作……我们在 Git 中使用的很多流程都直接来自于从 BitKeeper 学来的流程。”
“替代方案之一是恢复使用 tarball 和补丁,但现在已经没人喜欢这样了。”
Torvalds 因为在 10 天内编写出 Git 而受到赞誉。但回顾今年四月,他回忆道:“当我开始写作时,我实际上已经思考这个问题四个多月了,思考什么对我有用,思考如何才能做出比 BitKeeper 更好的东西。”
他委婉地描述了自己的想法:“我不能使用 CVS,因为我非常讨厌它,所以我要做我属于自己的事。”
但回顾过去,托瓦兹强调他坚持了一些简单的设计目标。
托瓦兹在 2007 年就表示说:“版本管理工具要用起来非常简单”,并称其“只有 80,000 行代码,而且大部分是用 C 语言编写的”。
2025 年,托瓦兹表示说,如果该代码库有一个主题,那就是“让我们开始工作吧,因为我还有另一个我认为更重要的项目需要回去。”
Torvalds 2007 年在 Google 演讲Git时的截图
托瓦兹承认他对使用 SHA-1 感到遗憾,“因为我认为它造成了很多毫无意义的混乱,人们试图同时支持 SHA-256 和 SHA-1。”
Git 的代码在 2020 年进行了重构,“现在可以处理多种哈希类型,其中 SHA-256 是第二种受支持的类型”。
Torvalds 这样表示道:“我理解这样做的原因,但我确实认为这基本上毫无意义。我认为当时并没有太大的实际需求。只是人们有点担心……所以,我认为很多努力都白费了。”
当后来被问及这些年来他关注的 Git 变化时,Torvalds 重提了这个话题。“我记得几年前我还在关注的最大变化就是多重哈希值。这对我来说真的非常痛苦。”
但是 Git 改变了人们的编码方式了吗?Torvalds 一度似乎反思了之后发生的一切,他说 GitHub 和其他托管服务“让我们清楚地知道,现在创建这些随机的小项目是多么容易,而以前的方式是前所未有的。”
这也导致了许多“一次性的事情,有人做了一些事,然后把它留下来,现在它还在那里”。托瓦兹不愿透露这是否从根本上改变了我们所知的软件开发——但他承认,“它改变了细节。在某种程度上,它使协作变得更容易了。”
“这使得这些一次性项目变得更容易,如果它们不起作用,那就不起作用,如果它们起作用了——现在你可以与其他人一起工作。”
托瓦兹这样坦承说道,对于过去二十年所有使用 Git 的项目来说,Git 的真正英雄是长期维护者滨野淳夫(Junio Hamano),“20 年后,你绝对应该和 Junio 交谈,而不是和我交谈。”
早在 2007 年谷歌演讲时,Torvalds 就称 Hamano 是“真正让 Linux 更容易被普通人接受的人。当然还有很多人参与其中。”
这么多年过去了,托瓦兹说自己获得了不少赞誉。他还记得大女儿刚上大学的时候,她告诉他,在她所在的计算机科学实验室里,他因为开发了 Git 而不是 Linux 而出名,“因为那里实际上什么都用 Git。”
“是的,这有点荒谬,我花了四个月的时间来维护它。”
我发现了一个惊人的秘密。Torvalds 有时会检查自己的 Git 历史记录文件,并分享了一些关于他使用模式的统计数据。“结果显示:我只使用了五个 Git 命令。”
git version、git blame 和git log就是其中三个。所以从这个意义上来说,我算是 Git 的普通用户了。
(Torvalds 使用的另外两个 Git 命令是 git commit 和 git pull。)
当被问及对未来的盼望时,托瓦兹指出,虽然许多网站确实提供了错误跟踪功能,但“我希望看到这些功能更加统一......错误跟踪和一般问题能够在托管网站之间更好地共享。”
但这一切又引出了一个新问题,Linux与Git。我们是不是该迎来 Torvalds 的另一个大项目了?“哦,这个问题么,”他笑着说。他以前也听过这个问题——但答案是否定的。
他做的所有项目,“都是因为我找不到比别人更好的东西,所以不得不自己做。我开始使用 Linux 是因为我需要一个操作系统,但没有任何东西能满足我的需求,我开始使用 Git 也是出于同样的原因。”
十年前,托瓦兹甚至为潜水员编写了自己的程序(因为他也是一名狂热的休闲潜水员)。“但我更喜欢别人帮我解决问题,”他告诉采访者。
“所以我不得不提出一个新项目,这实际上是世界的失败。但对我来说,过去 20 年里世界并没有失败。”
作者:场长
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。