很多人都知道餐胀,Linus在1991年創(chuàng)建了開源的Linux,從此瘤载,Linux系統(tǒng)不斷發(fā)展否灾,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。
Linus雖然創(chuàng)建了Linux鸣奔,但Linux的壯大是靠全世界熱心的志愿者參與的墨技,這么多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢挎狸?
事實(shí)是扣汪,在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus锨匆,然后由Linus本人通過手工方式合并代碼崭别!
你也許會(huì)想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢恐锣?不是有CVS茅主、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?因?yàn)長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ò)!)准夷,于是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了。