設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

Git 誕生 20 周年:大佬 Linus 罕見(jiàn)接受采訪,“十天寫(xiě)出的項(xiàng)目”徹底變革全球軟件開(kāi)發(fā)

量子位 2025/4/8 12:56:34 責(zé)編:汪淼

轉(zhuǎn)眼間 Git 誕生 20 周年了!

為了給 Git 慶生,如今鮮少公開(kāi)露面的 Linus 罕見(jiàn)接受采訪,更多幕后故事被更進(jìn)一步展開(kāi)。

2005 年 4 月 7 日,Linux 之父 Linus Torvalds,提交了 Git 的首個(gè)版本。

憑借開(kāi)源、分布式、本地可控等特點(diǎn),Git 快速?gòu)囊粋€(gè)小型的個(gè)人項(xiàng)目發(fā)展成為目前全球最廣泛使用的版本控制系統(tǒng)

后續(xù)隨著 GitHub、GitLab 等平臺(tái)共同推動(dòng),Git 徹底改變了世界構(gòu)建軟件的方式,如今已經(jīng)成為“開(kāi)源的默認(rèn)語(yǔ)言”。

在 AI 爆發(fā)的時(shí)代,Git 也是 AI 開(kāi)發(fā)不可或缺的一部分。幾乎所有知名的 AI 庫(kù)和模型都在 GitHub 上維護(hù)。

不過(guò)鮮為人知的是,這個(gè)影響全球的系統(tǒng),最初版本的開(kāi)發(fā),僅用了 10 天時(shí)間 ——

當(dāng)時(shí) Linux 社區(qū)使用的 BitKeeper 由于授權(quán)被取消,不再免費(fèi)提供給開(kāi)源社區(qū)。于是,創(chuàng)建了 Linux 的傳奇大佬 Linus Torvalds 再次出馬,Git 由此而來(lái)。

4 個(gè)月思考 + 10 天執(zhí)行

對(duì)于 Linus 本人而言,“10 天開(kāi)發(fā) Git”這個(gè)傳說(shuō)其實(shí)有點(diǎn)夸張。

10 天只是最后寫(xiě)代碼的時(shí)間,構(gòu)思 Git 最初的框架實(shí)際用了 4 個(gè)月。

當(dāng)時(shí),Linux 開(kāi)發(fā)社區(qū)使用的商業(yè)軟件 BitKeeper 在授權(quán)上出現(xiàn)了一些問(wèn)題,將不再免費(fèi)提供給開(kāi)源社區(qū)使用。

為了解決自用問(wèn)題,Linus 開(kāi)始想打造一個(gè)同類的工具。

實(shí)際上,想要復(fù)刻一個(gè) BitKeeper 并不難,比如澳大利亞的 Tridge 基本是對(duì) BitKeeper 的逆向,但這違反其規(guī)定。

從 2004 年底,Linus 開(kāi)始思考如何做出一個(gè)比 BitKeeper 更好、但實(shí)現(xiàn)方式不同的工具。

它最初的設(shè)計(jì)目標(biāo)完全參考 Linus 個(gè)人的開(kāi)發(fā)需求,專為處理 Linux 內(nèi)核這樣大規(guī)模項(xiàng)目設(shè)計(jì)。

我會(huì)做一些對(duì)我有用的東西,不關(guān)心其他人。

首個(gè)版本最核心關(guān)注點(diǎn)如下:

  • 性能至上

  • 分布式架構(gòu)

  • 數(shù)據(jù)完整

首先在性能上,Linus 的一個(gè)目標(biāo)是 Git 能在半分鐘內(nèi)應(yīng)用大量補(bǔ)丁,50、100 個(gè)那種。

他認(rèn)為速度是生產(chǎn)力的關(guān)鍵。一方面,要確保常見(jiàn)操作幾乎實(shí)時(shí)完成,另一方面如果操作是即時(shí)的,發(fā)現(xiàn)錯(cuò)誤時(shí)就要立即看到結(jié)果并繼續(xù)修復(fù)。

其次,它采用分布式架構(gòu)。

完全分布式的特性最終使得很多事情變得非常容易,這是 Git 與之前幾乎所有 SCM(源代碼管理)的區(qū)別之一。

在設(shè)計(jì)上,每個(gè)存儲(chǔ)庫(kù)都是相同且平等的,可以完全本地工作、不依賴網(wǎng)絡(luò)連接,并簡(jiǎn)化了項(xiàng)目分享和協(xié)作。

最后,Linus 引入了 SHA-1 哈希用于檢測(cè)數(shù)據(jù)損壞、確保內(nèi)容可靠性。

盡管人們覺(jué)得使用 SHA-1 哈希是一個(gè)巨大的錯(cuò)誤,但是對(duì)我來(lái)說(shuō),SHA-1 哈希從來(lái)都不是關(guān)于安全性,而是被用于發(fā)現(xiàn)數(shù)據(jù)損壞的。

正是這兩三個(gè)核心設(shè)計(jì)理念,促成了 Git 的誕生,也解釋了為什么 Git 的底層實(shí)際上相當(dāng)簡(jiǎn)單。

我把它比作 Unix。Unix 的一個(gè)核心理念就是:一切都是一個(gè)過(guò)程、一切都是一個(gè)文件,you pipe things。

而在執(zhí)行方面,Linus 的做法也很值得大家參考:

最初階段有一個(gè)清晰的想法,先不管之后是否能具體實(shí)現(xiàn)。

Git 的首個(gè)版本,只有大約一萬(wàn)行代碼,“甚至可以一口氣讀完”。

最初幾年,Git 也面臨一些體驗(yàn)上的爭(zhēng)議。它一開(kāi)始僅僅是 plumbing,根本沒(méi)有用戶界面。需要手動(dòng)運(yùn)行 commit-tree 命令、手動(dòng)將生成的 SHA-1 哈希寫(xiě)入 head 文件、沒(méi)有 git commit 這樣用戶友好的命令。

畢竟 Linus 在最初設(shè)計(jì)時(shí)也沒(méi) care 這些使用體驗(yàn)方面的問(wèn)題。

Junio Hamano 是改善 Git 使用體驗(yàn)的核心人物

在初版本發(fā)布 4 個(gè)月后,Linus 就將項(xiàng)目轉(zhuǎn)交給他維護(hù)。采訪中 Linus 也表示,Junio 的“品味”和長(zhǎng)期奉獻(xiàn)是 Git 能夠成功的關(guān)鍵。

我做 Git 完全是出于自己的原因。在這 20 年中,我只花了 4 個(gè)月時(shí)間在上面。真正的功勞屬于 Junio 和所有其他參與 Git 的人,他們現(xiàn)在做的比我多得多。

大概從 2007 年-2010 年,Git 逐漸獲得越來(lái)越多人認(rèn)可,特別是當(dāng)時(shí)的新一代開(kāi)發(fā)者,都會(huì)將 Git 作為首選工具。

Linus 認(rèn)為,讓 Git 真正流行的關(guān)鍵原因是 Ruby on Rails 社區(qū)的采用。后面隨著 GitHub 平臺(tái)出現(xiàn),進(jìn)一步利用 Ruby on Rails 社區(qū)的用戶基礎(chǔ)、簡(jiǎn)化 Git 使用體驗(yàn)、添加社交屬性,讓 Git 的影響進(jìn)一步擴(kuò)大。

由此,Git 從一個(gè)個(gè)人小眾工具,逐步發(fā)展為影響全行業(yè)的核心范式。

毒舌暴躁的開(kāi)源傳奇大佬

最后,再來(lái)簡(jiǎn)單回顧下 Linus Torvalds 的傳奇人生。

他 1969 年出生于芬蘭,現(xiàn)在已經(jīng) 56 歲了。

他一個(gè)人寫(xiě)出了兩個(gè)改變世界的項(xiàng)目:Linux 和 Git。它們幾乎影響了整個(gè) IT 和軟件產(chǎn)業(yè)的基礎(chǔ)架構(gòu)。

而且過(guò)程都非常相似:

不滿于當(dāng)前系統(tǒng) → 自己手搓一個(gè)開(kāi)源免費(fèi)版本 → 不斷擴(kuò)展功能受到更多開(kāi)發(fā)者關(guān)注 → 最終在全球產(chǎn)生廣泛影響。

1991 年初,當(dāng)時(shí)還是赫爾辛基大學(xué)學(xué)生的 Linus 開(kāi)始對(duì)操作系統(tǒng)產(chǎn)生興趣。他使用的是基于 UNIX 的 Minix 系統(tǒng),但對(duì)其功能限制感到不滿。他想要一個(gè)能夠充分利用他的新 Intel 386 電腦的操作系統(tǒng)。

1991 年 8 月 25 日,Linus 在 comp.os.minix 新聞組發(fā)布了一條著名的消息:“我正在做一個(gè)(免費(fèi)的)操作系統(tǒng)(只是個(gè)愛(ài)好,不會(huì)像 GNU 那樣龐大專業(yè))……”這被認(rèn)為是 Linux 項(xiàng)目的正式誕生。

最初 Linux 只是一個(gè)終端模擬器,Linus 用它來(lái)訪問(wèn)大學(xué)的 UNIX 服務(wù)器。隨著時(shí)間推移,他不斷擴(kuò)展其功能,添加了文件系統(tǒng)支持和設(shè)備驅(qū)動(dòng)程序。

關(guān)鍵轉(zhuǎn)折點(diǎn)是 Linus 決定采用 GNU 通用公共許可證 (GPL) 發(fā)布 Linux。這使得 Linux 成為一個(gè)真正的自由軟件,允許任何人查看、修改和分發(fā)代碼,只要他們同樣以 GPL 方式分享修改。

1992 年,Linux 與 GNU 項(xiàng)目的工具結(jié)合,形成了完整的操作系統(tǒng)。這種結(jié)合有時(shí)被稱為 GNU / Linux。

隨著互聯(lián)網(wǎng)的普及,世界各地的開(kāi)發(fā)者開(kāi)始為 Linux 貢獻(xiàn)代碼。Linus 采用了分散式開(kāi)發(fā)模式,審核并整合來(lái)自全球的貢獻(xiàn)。

從 1994 年開(kāi)始,Linux 版本 0.95 發(fā)布,商業(yè)公司如 Red Hat 開(kāi)始圍繞 Linux 創(chuàng)建商業(yè)產(chǎn)品和服務(wù)。

今天,Linux 已成為互聯(lián)網(wǎng)基礎(chǔ)設(shè)施的核心,為大多數(shù)網(wǎng)站服務(wù)器、Android 智能手機(jī)和超級(jí)計(jì)算機(jī)提供動(dòng)力。盡管項(xiàng)目規(guī)模已經(jīng)龐大,Linus 仍然擔(dān)任最終決策者,管理著 Linux 內(nèi)核的開(kāi)發(fā)方向。

不過(guò),除了技術(shù)和項(xiàng)目風(fēng)靡全球,Linus 的臭脾氣也是在技術(shù)圈廣為人知。

此前在有一次公開(kāi)演講中,因?qū)?NVIDIA 拒絕為 Linux 提供良好驅(qū)動(dòng)支持的態(tài)度表示不滿,Linus 直接對(duì)著攝像機(jī)豎起中指說(shuō):

NVIDIA,f**k you!

這一幕如今也成為了技術(shù)界的經(jīng)典場(chǎng)景。

此外,他本人也相當(dāng)毒舌,看到不好的代碼就直接在代碼評(píng)審中開(kāi)噴。

這不僅是垃圾,而且是有史以來(lái)最蠢的垃圾。

你的代碼很爛,如果我是你,我就躲到角落里去哭,然后考慮轉(zhuǎn)行。

對(duì) C++ 頗有微詞:C++ 是一種可怕的語(yǔ)言。它在設(shè)計(jì)上有著根本性的缺陷… 那些宣稱 C++ 比 C 好十倍的人是在撒謊。

以及 Git 在俚語(yǔ)中的意思是“討厭鬼”。

如此種種,非常多,就不列舉了。

不過(guò)在 2018 年,Linus 公開(kāi)道歉,表示要洗心革面,調(diào)整自己的溝通方式。

所以近年來(lái),他脾氣愈加溫和:仍舊直率但是明顯減少了個(gè)人攻擊和侮辱性語(yǔ)言。

好是好,就是大家能看的樂(lè)子也少了(bushi)。

參考鏈接:

  • https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/

本文來(lái)自微信公眾號(hào):量子位(ID:QbitAI),作者:明敏,原標(biāo)題《Git 誕生 20 周年!大佬 Linus 十天寫(xiě)出的項(xiàng)目,徹底變革全球軟件開(kāi)發(fā)》

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:GitLinus

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知