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!
集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交乙個
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!
git學習 Git 基礎要點
簡單地說,git 究竟是怎樣的乙個系統呢?請注意,接下來的內容非常重要,若是理解了 git 的思想和基本的工作原理,用起來就會知其所以然,游刃有餘。在開始學習 git 的時候,請不要嘗試把各種概念和其他的版本控制系統諸如 subversion 和 perforce 等相比擬,否則容易混淆每個操作的實...
Git 學習(二)Git 基礎
git 在儲存和對待各種資訊的時候與其它版本控制系統如 svn 等等有很大差異,儘管操作起來的命令形式非常相近,理解這些差異將有助於防止你使用中的困惑。如果有使用 svn 等其他版本控制系統的經驗,應該知道它們的工作原理是記錄每一次的變動。將它們儲存的資訊看作是一組基本檔案和每個檔案隨時間逐步累積的...
git基礎2 git目錄介紹
命令 git init解析 要對現有的某個專案開始用 git 管理,只需到此專案所在的目錄,執 行 git init 作用 初始化後,在當前目錄下會出現乙個名為 git 的目錄,所有 git 需要 的資料和資源都存放在這個目錄中。不過目前,僅僅是按照既有的結構框架初始化 好了裡邊所有的檔案和目錄,但...