git:最流行版本控制軟體,是一個人花2周寫出來的?

不少網友們應該知道,編輯部小夥伴們雖然本職都是寫簡體中文的,但有那麼一兩個奇葩也寫過程式碼( 比如在下 )。

我們曾經和大多數程式設計師一樣,常常廝混於一個神奇的網站 —— GitHub 。

差評君以前在文章中常常提起 GitHub ,平時還有不少選題來自 GitHub 上的項目。

GitHub 的廣泛定義是「 全球最大的程式碼託管網站 」,對許多人來說它的作用是託管程式碼,方便程式設計師們一起給同一個項目的程式碼添磚加瓦。

聽起來很簡單,但上面的東西很不簡單。。。

比如說全球大部分伺服器電腦都在用的作業系統核心 Linux 的源程式碼就靜靜地躺在上面。

不少人正在使用的安卓手機就是基於這個項目開發的,想想現在全世界有多少安卓手機。

由於 GitHub 上開源項目眾多,並且氣氛相當自由,許多程式設計師出於興趣建立起了不少很有趣的項目。

例如之前差評君寫過的,模仿阿諾德施瓦星格飾演的終結者臺詞語氣的程式語言 ArnoldC ,它的源程式碼就是某位大佬出於無聊而寫出來的。

不過也有的項目並不是程式碼,例如這個「 Dress 」是一群程式設計師聽信了「女裝提升程式碼效率」而紛紛上傳自己女裝照的「 開源相簿 」。

由於技術人士之間的線上交流氛圍往往非常友好, GitHub 還有個江湖別號,叫做「 全球最大的同性交友網站 」。

說了這麼多,想必不管寫不寫程式碼,各位都對 GitHub 有個初步瞭解了。但它為啥叫做「 GitHub 」呢?

因為支撐著它背後的核心技術叫做 Git ,它的來歷很有意思。

在繼續我們的故事前,差評君得先聊聊 Git 是個啥。

它是一套「 版本控制系統 」( Version Control System ),打個簡單的比方吧:如果把寫程式碼比作寫文章,版本控制系統就類似於 Word 裡的歷史版本功能 —— 寫程式碼裡一些修修改改的過程能用版本控制系統捋得明明白白。

Git 的作者林納斯托瓦茲是程式設計師圈子裡神一般的存在,他還有個更加廣為人知的身份——前面提到的作業系統 Linux 核心的第一作者。

Linux 是一個公開的項目:來自世界各地的程式設計師都為它獻祭過頭髮,貢獻過程式碼,給這個偉大的作業系統核心添磚加瓦。。。所以你沒想錯,這群技術宅肯定有個線上社區。

林納斯作為 Linux 項目和社區的老大,早些年卻有點缺心眼兒,他不用版本控制系統。。。

2000 年出頭那會兒不是沒有版本控制系統,林納斯就是嫌麻煩不喜歡用,大傢伙做個修改要同步一下程式碼,就交給林納斯本人複製粘貼,非常粗糙。。。

但問題來了, Linux 項目的程式碼量有上千萬行。。。你想想看上萬人寫同一本千萬字史詩鉅著,然後沒有一點修改記錄管理是啥場景?—— 犯了錯根本沒辦法查。

書要是錯了也就錯了,程式碼錯了的話整個程序就沒辦法運行了,鬼知道林納斯複製粘貼程式碼的時候有沒有喝酒喝 High 了呢。

於是大家在網上開啟了吐槽模式。。。好在大佬對待這麼重要的玩意兒也聽話,畢竟不能讓大傢伙的心血毀於一旦,就用了一個叫做 BitKeeper 的版本控制系統。

BitKeeper 有個在當時很新穎的功能,叫做「 分支 」,差評君就不細表了,懂行的差友們肯定現在肯定很熟悉它是幹啥的。

雖說 BitKeeper 在當時算是個好用趁手的工具,但林納斯當年這個選擇在社區裡爭議很大。。。因為 BitKeeper 不是自由軟體,而是個商業軟體,這在 Linux 社區這種開放氛圍濃厚的地方屬於大逆不道的玩意兒。

你想想啊,大部分人都是出於對技術的追求無償維護 Linux 的,你這拿一個收費軟體來管理,軟體的錢怎麼掏?

這個情況在當年倒沒有成為一個問題:因為林納斯和 Linux 名氣太響, BitKeeper 確實沒向這些程序猿們收錢,但他們付出了其他代價,比如必須接受 BitKeeper 母公司的排他協議。

總之,作為商業軟體的 BitKeeper 惹毛了 Linux 開發者,然後有位哥們兒就做起了駭客的幹活:破解這個軟體!

這位兄弟叫做安德魯 · 垂鳩,也算是變相改變世界了▼

這位兄弟叫做安德魯 · 垂鳩,也算是變相改變世界了

這操作人家商業軟體公司老闆怎麼忍?

BitKeeper 的擁有者拉里 · 麥沃伊馬上發出了一番警告,但幹破解的兄弟不聽繼續作死。。。於是拉里選擇中止合作, Linux 社區不能用 BitKeeper 了。

這要是放其他社區估計這兄弟要被人肉噴死,但 Linux 社區有個神一般的林納斯,他做了一件在他人看來難以想象的事情:停下了 Linux 核心的維護工作。

要知道,林納斯這位仁兄自從 1991 年開始就沒停止過給 Linux 輸血,這動作不亞於差評君和你說自己停止了呼吸一樣。。。

但他不是撂挑子不幹了,而是一個人閉關開始擼程式碼,乾脆寫一個 BitKeeper 的替代品,你沒猜錯,它叫做 Git !

關於 Git 的開發時間,江湖傳言有的說是幾天,有的說是十幾天,但總之沒有超過一個月的。但江湖上有一個共同的認知:Git 它好用,還開源免費!

至於 BitKeeper 就比較慘了,市場急劇萎縮, 2016 年終於想通了宣佈開源也鮮有人問津。

於是,幾乎全世界都有開發者在用 Git 這玩意兒。

後來有人基於 Git 創造的網站 GitHub 也發展到瞭如今這麼大規模,促進了全世界的科技發展。

關於林納斯開發 Git 的故事,差評君想了這麼個比方:有個人做了類似打造萬里長城一樣的壯舉,但是他就用了十幾天,而且獨自完成。。。

有時候,科技圈的魅力不光來自於產品,也來自於這些偉大的個體,是科技解放了他們的大腦和生產力,讓他們改變了世界。

相關文章