今天小編(嬴覓晴)要和大家分享的是Git誕生20周年!大佬Linus十天寫出的項目,徹底變革全球軟體開發,歡迎閱讀~
轉眼間 Git 誕生 20 周年了!
為了給 Git 慶生,如今鮮少公開露面的 Linus 罕見接受采訪,更多幕後故事被更進一步展開。
2005 年 4 月 7 日,Linux 之父 Linus Torvalds,提交了 Git 的首個版本。
憑借開源、分布式、本地可控等特點,Git 快速從一個小型的個人項目發展成為目前全球最廣泛使用的版本控制系統。
後續随着 GitHub、GitLab 等平台共同推動,Git 徹底改變了世界構建軟體的方式,如今已經成為 " 開源的默認語言 "。
在 AI 爆發的時代,Git 也是 AI 開發不可或缺的一部分。幾乎所有知名的 AI 庫和模型都在 GitHub 上維護。
不過鮮為人知的是,這個影響全球的系統,最初版本的開發,僅用了 10 天時間——
當時 Linux 社區使用的 BitKeeper 由于授權被取消,不再免費提供給開源社區。
于是,創建了 Linux 的傳奇大佬 Linus Torvalds 再次出馬,Git 由此而來。
4 個月思考 +10 天執行
對于 Linus 本人而言,"10 天開發 Git" 這個傳說其實有點誇張。
10 天只是最後寫代碼的時間,構思 Git 最初的框架實際用了 4 個月。
當時,Linux 開發社區使用的商業軟體 BitKeeper 在授權上出現了一些問題,将不再免費提供給開源社區使用。
為了解決自用問題,Linus 開始想打造一個同類的工具。
實際上,想要復刻一個 BitKeeper 并不難,比如澳大利亞的 Tridge 基本是對 BitKeeper 的逆向,但這違反其規定。
從 2004 年底,Linus 開始思考如何做出一個比 BitKeeper 更好、但實現方式不同的工具。
它最初的設計目标完全參考 Linus 個人的開發需求,專為處理 Linux 内核這樣大規模項目設計。
我會做一些對我有用的東西,不關心其他人。
首個版本最核心關注點如下:
性能至上
分布式架構
數據完整
首先在性能上,Linus 的一個目标是 Git 能在半分鍾内應用大量補丁,50、100 個那種。
他認為速度是生產力的關鍵。一方面,要确保常見操作幾乎實時完成,另一方面如果操作是即時的,發現錯誤時就要立即看到結果并繼續修復。
其次,它采用分布式架構。
完全分布式的特性最終使得很多事情變得非常容易,這是 Git 與之前幾乎所有 SCM(源代碼管理)的區别之一。
在設計上,每個存儲庫都是相同且平等的,可以完全本地工作、不依賴網絡連接,并簡化了項目分享和協作。
最後,Linus 引入了 SHA-1 哈希用于檢測數據損壞、确保内容可靠性。
盡管人們覺得使用 SHA-1 哈希是一個巨大的錯誤,但是對我來說,SHA-1 哈希從來都不是關于安全性,而是被用于發現數據損壞的。
正是這兩三個核心設計理念,促成了 Git 的誕生,也解釋了為什麼 Git 的底層實際上相當簡單。
我把它比作 Unix。Unix 的一個核心理念就是:一切都是一個過程、一切都是一個檔案,you pipe things。
而在執行方面,Linus 的做法也很值得大家參考:
最初階段有一個清晰的想法,先不管之後是否能具體實現。
Git 的首個版本,只有大約一萬行代碼," 甚至可以一口氣讀完 "
最初幾年,Git 也面臨一些體驗上的争議。它一開始僅僅是 plumbing,根本沒有用戶界面。需要手動運行 commit-tree 命令、手動将生成的 SHA-1 哈希寫入 head 檔案、沒有 git commit 這樣用戶友好的命令。
畢竟 Linus 在最初設計時也沒 care 這些使用體驗方面的問題。
Junio Hamano 是改善 Git 使用體驗的核心人物。
在初版本發布 4 個月後,Linus 就将項目轉交給他維護。采訪中 Linus 也表示,Junio 的 " 品味 " 和長期奉獻是 Git 能夠成功的關鍵。
我做 Git 完全是出于自己的原因。在這 20 年中,我只花了 4 個月時間在上面。真正的功勞屬于 Junio 和所有其他參與 Git 的人,他們現在做的比我多得多。
大概從 2007 年 -2010 年,Git 逐漸獲得越來越多人認可,特别是當時的新一代開發者,都會将 Git 作為首選工具。
Linus 認為,讓 Git 真正流行的關鍵原因是 Ruby on Rails 社區的采用。後面随着 GitHub 平台出現,進一步利用 Ruby on Rails 社區的用戶基礎、簡化 Git 使用體驗、添加社交屬性,讓 Git 的影響進一步擴大。
由此,Git 從一個個人小眾工具,逐步發展為影響全行業的核心範式。
毒舌暴躁的開源傳奇大佬
最後,再來簡單回顧下 Linus Torvalds 的傳奇人生。
他 1969 年出生于芬蘭,現在已經 56 歲了。
他一個人寫出了兩個改變世界的項目:Linux 和 Git。它們幾乎影響了整個 IT 和軟體產業的基礎架構。
而且過程都非常相似:
不滿于當前系統→自己手搓一個開源免費版本→不斷擴展功能受到更多開發者關注→最終在全球產生廣泛影響。
1991 年初,當時還是赫爾辛基大學學生的 Linus 開始對作業系統產生興趣。他使用的是基于 UNIX 的 Minix 系統,但對其功能限制感到不滿。他想要一個能夠充分利用他的新 Intel 386 電腦的作業系統。
1991 年 8 月 25 日,Linus 在 comp.os.minix 新聞組發布了一條著名的消息:" 我正在做一個(免費的)作業系統(只是個愛好,不會像 GNU 那樣龐大專業)…… " 這被認為是 Linux 項目的正式誕生。
最初 Linux 只是一個終端模拟器,Linus 用它來訪問大學的 UNIX 伺服器。随着時間推移,他不斷擴展其功能,添加了檔案系統支持和設備驅動程式。
關鍵轉捩點是 Linus 決定采用 GNU 通用公共許可證 ( GPL ) 發布 Linux。這使得 Linux 成為一個真正的自由軟體,允許任何人查看、修改和分發代碼,只要他們同樣以 GPL 方式分享修改。
1992 年,Linux 與 GNU 項目的工具結合,形成了完整的作業系統。這種結合有時被稱為 GNU/Linux。
随着互聯網的普及,世界各地的開發者開始為 Linux 貢獻代碼。Linus 采用了分散式開發模式,審核并整合來自全球的貢獻。
從 1994 年開始,Linux 版本 0.95 發布,商業公司如 Red Hat 開始圍繞 Linux 創建商業產品和服務。
今天,Linux 已成為互聯網基礎設施的核心,為大多數網站伺服器、Android 智能手機和超級計算機提供動力。盡管項目規模已經龐大,Linus 仍然擔任最終決策者,管理着 Linux 内核的開發方向。
不過,除了技術和項目風靡全球,Linus 的臭脾氣也是在技術圈廣為人知。
此前在有一次公開演講中,因對 NVIDIA 拒絕為 Linux 提供良好驅動支持的态度表示不滿,Linus 直接對着攝影機豎起中指說:
NVIDIA,f**k you!
這一幕如今也成為了技術界的經典場景。
此外,他本人也相當毒舌。
看到不好的代碼就直接在代碼評審中開噴。
這不僅是垃圾,而且是有史以來最蠢的垃圾。
你的代碼很爛,如果我是你,我就躲到角落裡去哭,然後考慮轉行。
對 C++ 頗有微詞:C++ 是一種可怕的語言。它在設計上有着根本性的缺陷…那些宣稱 C++ 比 C 好十倍的人是在撒謊。
以及 Git 在俚語中的意思是 " 讨厭鬼 "。
如此種種,非常多,就不列舉了。
不過在 2018 年,Linus 公開道歉,表示要洗心革面,調整自己的溝通方式。
所以近年來,他脾氣愈加溫和:仍舊直率但是明顯減少了個人攻擊和侮辱性語言。
好是好,就是大家能看的樂子也少了(bushi)。
參考鏈接:
https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!
— 完 —
速搶席位!中國 AIGC 產業峰會觀眾報名通道已開啟 ♀️
最新嘉賓曝光啦 百度、華為、AWS、MSRA、無問芯穹、數勢科技、面壁智能、生數科技等十數位 AI 領網域創變者将齊聚峰會,讓更多人用上 AI、用好 AI,與 AI 一同加速成長~
4 月 16 日,就在北京,一起來深度求索 AI 怎麼用
一鍵星标
科技前沿進展每日見
關于Git誕生20周年!大佬Linus十天寫出的項目,徹底變革全球軟體開發就分享完了,您有什麼想法可以聯系小編(嬴覓晴)。