集中式版本控制VS分佈式版本控制

      CVS及SVN都是集中式的版本控制系統,而Git是分佈式版本控制系統,集中式和分佈式版本控制系統有什麼區別呢?    安全

     集中式版本控制系統,版本庫是集中存放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此要先從中央服務器取得最新的版本,而後開始幹活,幹完活了,再把本身的活推送給中央服務器。中央服務器就比如是一個圖書館,你要改一本書,必須先從圖書館借出來,而後回到家本身改,改完了,再放回圖書館。服務器

      集中式版本控制系統最大的毛病就是必須聯網才能工做,若是在局域網內還好,帶寬夠大,速度夠快,可若是在互聯網上,遇到網速慢的話,可能提交一個10M的文件就須要5分鐘,這還不得把人給憋死啊。分佈式

  那分佈式版本控制系統與集中式版本控制系統有何不一樣呢?首先,分佈式版本控制系統根本沒有「中央服務器」,每一個人的電腦上都是一個完整的版本庫,這樣,你工做的時候,就不須要聯網了,由於版本庫就在你本身的電腦上。既然每一個人電腦上都有一個完整的版本庫,那多我的如何協做呢?比方說你在本身電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,大家倆之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。設計

  和集中式版本控制系統相比,分佈式版本控制系統的安全性要高不少,由於每一個人電腦裏都有完整的版本庫,某一我的的電腦壞掉了沒關係,隨便從其餘人那裏複製一個就能夠了。而集中式版本控制系統的中央服務器要是出了問題,全部人都無法幹活了。版本控制

  在實際使用分佈式版本控制系統的時候,其實不多在兩人之間的電腦上推送版本庫的修改,由於可能大家倆不在一個局域網內,兩臺電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。所以,分佈式版本控制系統一般也有一臺充當「中央服務器」的電腦,但這個服務器的做用僅僅是用來方便「交換」你們的修改,沒有它你們也同樣幹活,只是交換修改不方便而已。it

  固然,Git的優點不單是沒必要聯網這麼簡單,後面咱們還會看到Git極其強大的分支管理,把SVN等遠遠拋在了後面。io

  CVS做爲最先的開源並且免費的集中式版本控制系統,直到如今還有很多人在用。因爲CVS自身設計的問題,會形成提交文件不完整,版本庫莫名其妙損壞的狀況。一樣是開源並且免費的SVN修正了CVS的一些穩定性問題,是目前用得最多的集中式版本庫控制系統。互聯網

  除了免費的外,還有收費的集中式版本控制系統,好比IBM的ClearCase(之前是Rational公司的,被IBM收購了),特色是安裝比Windows還大,運行比蝸牛還慢,能用ClearCase的通常是世界500強,他們有個共同的特色是財大氣粗,或者人傻錢多。推送

  微軟本身也有一個集中式版本控制系統叫VSS,集成在Visual Studio中。因爲其反人類的設計,連微軟本身都很差意思用了。di

  分佈式版本控制系統除了Git以及促使Git誕生的BitKeeper外,還有相似Git的Mercurial和Bazaar等。這些分佈式版本控制系統各有特色,但最快、最簡單也最流行的依然是Git!

相關文章
相關標籤/搜索