版本控制系統

2021-09-11 23:01:29 字數 1845 閱讀 9807

linux一直痛恨的cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?

1、集中式版本控制系統

代表:svn、cvs

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

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

2、分布式版本控制系統

代表:git

分布式版本控制系統與集中式版本控制系統有何不同呢?

首先,分布式版本控制系統根本沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案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!

優點:(1) 許可權系統完善;(2) 提交修改操作簡便;

缺點:(1) 打分支需要聯網到服務端;(2) 依賴伺服器的穩定性;

適用場景:(1) 商業軟體的開發;(2) 同步需求十分頻繁的多人協作

優點:(1) 打分支不需要聯網,客戶端本地儲存著所有歷史記錄;(2) 不依賴伺服器的穩定性,風險分散

缺點:(1) 同步多人的修改稍繁;(2) 本地**管理需要十分謹慎;(3) 缺少許可權管理系統

適用場景:(1) 開源軟體的開發;(2) 同步需求不頻繁或者異地的多人協作。

版本控制系統

github是全球最大的開源專案託管平台,這個平台在技術領域也非常有影響力,託管必然離不開版本控制,下面就介紹一下版本控制系統。q1 什麼是版本控制系統?a 版本控制系統的英文名叫做vcs version control system 版本控制系統是以記錄目錄或檔案的改變為基礎的。試想一下,如果沒有...

git版本控制系統

總結 1.初始化乙個git倉庫,使用 git init 命令 2.新增檔案到git倉庫分兩步 第一步,使用命令 git add file 注意,可反覆多次使用,新增多個檔案 第二步,使用命令 git commit 完成小結 1 head 指向的是當前版本,因此可以使用 git reset hard ...

git 版本控制系統

一 git版本控制 解決的三個痛點問題 作用 1.解決虛擬機器意外壞了 磁碟損壞等意外情況 2.版本持續變化,需要對很多個版本進行管理 3.能夠方便多人進行協同開發 建議 使用centos7 centos6中git版本太低 注意 git與linux作者相同 二 git版本控制的特點 1.分布式 2....