1. 程式人生 > >版本控制:集中式VS分散式瞭解它們的執行方式

版本控制:集中式VS分散式瞭解它們的執行方式

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

集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交一個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分散式瞭解它們執行方式

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

版本控制中式VS分散式

前面提到,Linus一直痛恨CVS及SVN這些集中式的版本控制系統,為什麼呢?Git是分散式版本控制系統,那麼集中式和分散式版本控制系統又有什麼區別呢? 先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,

版本控制中式(SVN) vs 分散式(GIT)

Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分散式版本控制系統,集中式和分散式版本控制系統有什麼區別呢? 先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹

中式VS分散式版本控制系統(二)

Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分散式版本控制系統,集中式和分散式版本控制系統有什麼區別呢? 集中式版本控制系統,版本庫是集中存放在中央伺服器的, 而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,再

版本控制工具 git與svn(分散式vs中式)

版本控制:即記錄一個或若干檔案內容變化,以便將來查閱特定版本修訂情況以及回溯的系統。 集中式–svn SVN, 全名Subvision; 作為集中式版本控制工具,版本庫集中存放在中央伺服器,team裡每個人work時從中央伺服器下載程式碼,是必須聯網才能工作

從 paxos 到 zookeeper(一)分散式架構之從中式分散式

1.1 序言 隨著計算機系統規模變得越來越大,將所有的業務單元集中部署在一個或者若干個大型機上的體系結構,已經越來越不能滿足當今計算機系統,尤其是大型網際網路系統的快速發展,各種靈活多變的系統架構模型層出不窮。同時,隨著微型計算機的出現,越來越多的廉價的PC機成

中式存儲解決方案

div 陣列 部署 通道 系統 困難 sata samba 計算 ①DAS:直接附加存儲(適合單臺服務器) 1:DAS指的是什麽:指將存儲設備通過SCSI接口或光纖通道直接連接到一臺計算機上 2:DAS的適用哪些環境: a:服務器在地理分布上很分散,通過SAN或NAS在

Git版本控制Git安裝與配置

@概述 Git是GitHub開源社群的版本管理系統; 下載地址:https://git-scm.com/download/ Git的安裝:一路使用預設設定進行安裝即可,最後一步時選擇將GitBash新增到桌面和快速啟動選單; 雙擊啟動GitBash命令列工具;  @Git

理解OpenShift(6)中式日誌處理

  理解OpenShift(1):網路之 Router 和 Route 理解OpenShift(2):網路之 DNS(域名服務) 理解OpenShift(3):網路之 SDN 理解OpenShift(4):使用者及許可權管理 理解OpenShift(5):從 Docker Volume 到

Git版本控制Git查閱、撤銷檔案修改和撤銷檔案追蹤

檢視檔案的修改歷史git log --pretty=oneline 檔名 # 顯示修改歷史[Git高階教程:git log與git reflog]git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e # 檢視更改歷史版本檢視和對比

Git版本控制Git遠端倉庫

遠端庫建立總結 生成sshkey:ssh-keygen -t rsa -C "***@126.com" Note: 如果不支援圖形形式的key可以開啟pub檔案複製其中的內容也可以。 $ git config --global user.name "***" $

版本控制SVN和GIT的一些使用感受(續)

背景:         緊接上文,從本地獨立開發者角度出發,繼續對從SVN集中式版本管理轉向GIT分散式版本管理的細節進行介紹。此次以自己具體的開發例項為基礎,給出GIT管理從整體專案SVN伺服器檢出來的本地工作副本的詳細過程。 GIT與SVN的結合:         為了

git版本控制如何處理當前分支為*(no branch)的情況

在使用git branch命令檢視當前環境所在的開發分支時,如果出現*(no branch),則表示當前不處於任何分支,這時可以通過如下幾種方法處理,以便於後續專案版本的管理: 1:git checkout -b 分支名;此時新建立的分支與*(no branch)軟體一樣

Git版本控制Gitlab及Coding.net的使用

Gitlab介紹 GitLab是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自託管的Git專案倉庫,可通過Web介面進行訪問公開的或者私人專案。它擁有與Github類似的功能,能夠瀏覽原始碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過

版本控制SVN和GIT的一些使用感受

背景:          原本在學校跟隨導師做專案的時候,就一直在使用版本管理,主要是用來記錄專案的修改,專案成員之間的溝通和交流。使用的服務端是Visual SVN,客戶端是TortoiseSVN,常用的TortoiseSVN指令也僅限於SVN Update和SVN Co

版本控制分散式中式

Linus一直痛恨的CVS及SVN都是集中式的版本控制系統,而Git是分散式版本控制系統,集中式和分散式版本控制系統有什麼區別呢? 先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活

分散式中式版本控制的區別!

前面提到,Linus一直痛恨CVS及SVN這些集中式的版本控制系統,為什麼呢?Git是分散式版本控制系統,那麼集中式和分散式版本控制系統又有什麼區別呢? 先說集中式版本控制系統,版本庫是集中存放在中央伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從中央伺服器取得最新的版本,然後開始幹活,幹完活了,

何為中式版本控制系統與分散式版本控制系統?

什麼是集中式版本控制系統與分散式版本控制系統?    集中式版本控制系統:版本庫是集中放在中央伺服器的,當我們實際工作的時候,用的都是自己的電腦,所以首先要連線中央伺服器,從那裡得到最新的版本,然後編寫

中式(SVN)和分布式(Git)版本控制系統的簡單比較

ron table targe 特點 相對 tps ble 12px pan 集中式(SVN) 分布式(Git) 是否有中央服務器 有。開發人員需要從中央服務器獲得最新版本的項目然後在本地開發,開發完推送給中央服務器。因此脫離服

分散式版本控制系統Git學習筆記

文章目錄 概述 Git是什麼 Git的安裝 建立版本庫 編寫檔案上傳 使用GitHub 概述 身為DBA的我前夕確實對於程式碼比較陌生啊,Git也是很少聽過。