版本控制 集中式VS分布式了解它們的執行方式

2021-07-28 13:29:58 字數 1488 閱讀 6219

前面提到,linus一直痛恨cvs及svn這些集中式的版本控制系統,為什麼呢?git是分布式版本控制系統,那麼集中式和分布式版本控制系統又有什麼區別呢?

先說集中式版本控制系統,版本庫是集中存放在**伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給**伺服器。**伺服器就好比是乙個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。

集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交乙個10m的檔案就需要5分鐘,這還不得把人給憋死啊。

那分布式版本控制系統與集中式版本控制系統有何不同呢?首先,分布式版本控制系統根本沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

和集中式版本控制系統相比,分布式版本控制系統的安全性要高很多,因為每個人電腦裡都有完整的版本庫,某乙個人的電腦壞掉了不要緊,隨便從其他人那裡複製乙個就可以了。而集中式版本控制系統的**伺服器要是出了問題,所有人都沒法幹活了。

在實際使用分布式版本控制系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,因為可能你們倆不在乙個區域網內,兩台電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。因此,分布式版本控制系統通常也有一台充當「**伺服器」的電腦,但這個伺服器的作用僅僅是用來方便「交換」大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

當然,git的優勢不單是不必聯網這麼簡單,後面我們還會看到git極其強大的分支管理,把svn等遠遠拋在了後面。

cvs作為最早的開源而且免費的集中式版本控制系統,直到現在還有不少人在用。由於cvs自身設計的問題,會造成提交檔案不完整,版本庫莫名其妙損壞的情況。同樣是開源而且免費的svn修正了cvs的一些穩定性問題,是目前用得最多的集中式版本庫控制系統。

除了免費的外,還有收費的集中式版本控制系統,比如ibm的clearcase(以前是rational公司的,被ibm收購了),特點是安裝比windows還大,執行比蝸牛還慢,能用clearcase的一般是世界500強,他們有個共同的特點是財大氣粗,或者人傻錢多。

微軟自己也有乙個集中式版本控制系統叫vss,整合在visual studio中。由於其***的設計,連微軟自己都不好意思用了。

分布式版本控制系統除了git以及促使git誕生的bitkeeper外,還有類似git的mercurial和bazaar等。這些分布式版本控制系統各有特點,但最快、最簡單也最流行的依然是git!

集中式vs分布式

linus一直痛恨的cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?先說集中式版本控制系統,版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給 伺服...

Git 集中式VS分布式

集中式版本控制系統 版本庫是集中存放在 伺服器的,而幹活的時候用的是自己電腦,所以要先從 伺服器取得最新版本,然後開始幹活,幹完再把自己的 活推送給 伺服器。集中式版本控制系統最大的毛病就是必須聯網才能工作。分布式版本控制系統 首先,分布式版本控制系統根本沒有 伺服器 每個人的電腦上都是乙個完整的版...

分布式和集中式的版本控制的區別!

chapter 開始了解git 1.先談談版本控制的一些事 2.git誕生背後的一些故事 3.版本控制 集中式vs分布式 4.git的思想和基本工作原理 5.git在windows下的安裝 前面提到,linus一直痛恨cvs及svn這些集中式的版本控制系統,為什麼呢?git是分布式版本控制系統,那麼...