先說集中式版本控制系統,版本庫是集中存放在中央服務器的,而負責幹活的時候,用的是咱們本身的電腦,因此要先從中央服務器的最新版本,而後在開始幹活,幹完活以後,再把本身的活推送給中央服務器。中央服務器就像是一個圖書館,當你須要改一本書,必須先從圖書館把你想要的書從圖書館借出來,而後回到家以後本身改,改完以後在放回圖書館。安全
集中式控制版本系統最大的缺點就是必須聯網才能工做,若是在局域網內還好,帶寬勾搭,速度夠快,可是若是咱們所處的地方是互聯網,那麼網速較慢的話,可能提交相應較大的文件就須要話費很長時間,是否是很捉急。服務器
在來看看分佈式版本控制系統與集中式版本控制系統有什麼不一樣?首先,分佈式版本控制系統根本沒有「中央服務器」,每一個人的電腦上都是一個完整的版本控制庫,這樣你工做的時候就不須要聯網。既然每一個人電腦上都是有一個完整的版本庫,那多人該如如何協做哪?比方說你在本身電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,大家倆之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。分佈式
和集中式版本控制系統相比,分佈式版本控制系統的安全性要求更高,由於每一個人電腦都有完整的版本庫,某一個電腦損壞了沒有關係,隨便從其餘人那裏複製一個就能夠繼續使用。而集中式版本控制系統的中央服務器要是除問題,文件都存在一臺主機上,那麼你們都沒有辦法去幹活,只能乾瞪眼~~~~~設計
在實際使用分佈式版本控制系統的時候,其實不多在兩人之間的電腦上推送版本庫的修改,由於可能大家倆不在一個局域網內,兩臺電腦互相訪問不了,也可能今天 你的同事病了,他的電腦壓根沒有開機。所以,分佈式版本控制系統一般也有一臺充當「中央服務器」的電腦,但這個服務器的做用僅僅是用來方便「交換」你們的 修改,沒有它你們也同樣幹活,只是交換修改不方便而已。版本控制
從上面的敘述咱們能夠知道,Git的優點不單單是沒必要要聯網那麼的小兒科,隨後咱們會看到Git很強大的分支管理,把SVN等甩了幾條街。it
CVS做爲做爲最簡單的開源免費的集中式版本控制系統,一直到如今還有不少人在使用。因爲CVS自身的設計問題,會形成提交文件不完整,版本庫莫名其妙損壞的情況。一樣是開源免費的SVN修正了CVS的一些穩定性問題,是目前用得最多的集中式版本庫控制系統。互聯網
分佈式版本控制系統除了Git以及促使Git誕生的BitKeeper外,還有相似Git的Mercurial和Bazaar等。這些分佈式版本控制系統各有特色,但最快、最簡單也最流行的依然是Git!im