很多人都知道吧史,Linus在1991年創(chuàng)建了開源的Linux邮辽,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了吨述。
Linus雖然創(chuàng)建了Linux岩睁,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為L(zhǎng)inux編寫代碼揣云,那Linux的代碼是如何管理的呢捕儒?
事實(shí)是,在2002年以前邓夕,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus刘莹,然后由Linus本人通過手工方式合并代碼!
你也許會(huì)想焚刚,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢点弯?不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎矿咕?因?yàn)長(zhǎng)inus堅(jiān)定地反對(duì)CVS和SVN蒲拉,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用痴腌。有一些商用的版本控制系統(tǒng)雌团,雖然比CVS、SVN好用士聪,但那是付費(fèi)的锦援,和Linux的開源精神不符。
不過剥悟,到了2002年灵寺,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了区岗,社區(qū)的弟兄們也對(duì)這種方式表達(dá)了強(qiáng)烈不滿略板,于是Linus選擇了一個(gè)商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神慈缔,授權(quán)Linux社區(qū)免費(fèi)使用這個(gè)版本控制系統(tǒng)叮称。
安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集藐鹤,不免沾染了一些梁山好漢的江湖習(xí)氣瓤檐。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個(gè)),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯(cuò)S榻凇)挠蛉,于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)肄满。
Linus可以向BitMover公司道個(gè)歉谴古,保證以后嚴(yán)格管教弟兄們质涛,嗯,這是不可能的掰担。實(shí)際情況是這樣的:
Linus花了兩周時(shí)間自己用C寫了一個(gè)分布式版本控制系統(tǒng)汇陆,這就是Git!一個(gè)月之內(nèi)恩敌,Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢横媚?大家可以體會(huì)一下纠炮。
Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年灯蝴,GitHub網(wǎng)站上線了恢口,它為開源項(xiàng)目免費(fèi)提供Git存儲(chǔ),無數(shù)開源項(xiàng)目開始遷移至GitHub穷躁,包括jQuery耕肩,PHP,Ruby等等问潭。
歷史就是這么偶然猿诸,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費(fèi)而超級(jí)好用的Git了狡忙。