Linux之父Linus是堅決的CVS反對者,他也一樣地反對SVN。這就是爲何在1991~2002這十餘年間,Linus寧肯以手工修補文件的方式維護代碼,也遲遲不肯使用CVS的緣由。linux
2002年至2005年,Linus頂着開源社區精英們口誅筆伐的壓力,選擇了一個商業版本控制系統BitKeeper做爲Linux內核的代碼管理工具。BitKeeper不一樣於CVS和SVN等集中式版本控制工具,而是一款分佈式版本控制工具。網絡
分佈式版本控制系統最大的反傳統之處在於,能夠不須要集中式的版本庫,每一個人都工做在經過克隆創建的本地版本庫中。也就是說每一個人都擁有一個完整的版本庫,查看提交日誌,提交,建立里程碑和分支,合併分支,回退等全部操做都直接在本地完成而不須要網絡鏈接。每一個人都是本地版本庫的主人,再也不有誰能提交誰不能提交的限制,加上多樣的協同工做模型(版本庫間推送,拉回,以及補丁文件傳送等)讓開源項目的參與度有爆發式增加。分佈式
2005年發生的一件事最終致使Git的誕生。在2005年4月,Andrew Tridgell(即大名鼎鼎的Samba的做者)試圖對BitKeeper進行反向工程,以開發一個能與BitKeeper交互的開源工具。這激怒了BitKeeper軟件的全部者BitKeeper公司,要求收回對Linux社區無償使用BitKeeper的受權。無可奈何,Linus選擇了本身開發一個分佈式版本控制工具以替代BitKeeper。工具
Linus以一個文件系統專家和內核設計者的視角對Git進行了設計,其獨特的設計讓Git擁有非凡的性能和最爲優化的存儲能力。完成原型設計後,在2005年7月26日,Linus功成身退,將Git的維護交給另一個Git的主要貢獻者junio C Hamano,直到如今。性能
Git雖然是在Linux下開發的,但如今已經能夠跨平臺運行在全部主流的操做系統上,包括:linux,Mac OS和Windows等。
優化