SVN和CVS都是集中式版本控制系統,而Git是散布式版本控制系統
版本庫是集中寄存在中央服務器的,而干活的時候,用的都是自己的電腦,所以要先從中央服務器獲得最新的版本,然后開始干活,干完活了,再把自己的活推送給中央服務器。
集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在局域網內還好,帶寬夠大,速度夠快,可如果在互聯網上,遇到網速慢的話,可能提交1個10M的文件就需要5分鐘
散布式版本控制系統沒有“中央服務器”,每一個人的電腦上都是1個完全的版本庫,這樣,你工作的時候,就不需要聯網了,由于版本庫就在你自己的電腦上。既然每一個人電腦上都有1個完全的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時候,你們倆之間只需把各自的修改推送給對方,就能夠相互看到對方的修改了。
和集中式版本控制系統相比,散布式版本控制系統的安全性要高很多,由于每一個人電腦里都有完全的版本庫,某1個人的電腦壞掉了不要緊,隨意從其他人那里復制1個就能夠了。而集中式版本控制系統的中央服務器要是出了問題,所有人都沒法干活了。
在實際使用散布式版本控制系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,由于可能你們倆不在1個局域網內,兩臺電腦相互訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。因此,散布式版本控制系統通常也有1臺充當“中央服務器”的電腦,但這個服務器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也1樣干活,只是交換修改不方便而已。
上一篇 數據結構 - 圖的存儲結構
下一篇 數據結構 - 圖的遍歷