Git Git 與 SVN 的區別

2021-09-20 13:19:41 字數 1806 閱讀 6725

首先,git 不僅僅是個版本控制系統,它也是個內容管理系統(cms),工作管理系統等。

如果你一直用的是svn,那你需要做一下思想轉換,來適應 git 提供的一些概念和特徵。

二:分布式版本控制系統 與 集中式版本控制系統 的區別 ?

1: 「版本控制系統」 的區別

git 屬於分布式版本控制系統,svn 屬於集中式版本控制系統。

這是 git 和其它集中式版本控制系統(例如 svn,cvs 等),最核心的區別。這點博文後面也會著重敘述。

2: 「儲存方式」 的區別

git 將內容按元資料方式儲存。

而 svn 是按檔案儲存,所有的資源控制系統都是把檔案的元資訊隱藏在乙個類似 .svn、.cvs 等的資料夾裡。

3: 「分支」 的區別

git 分支和 svn 的分支不同。svn 中的分支一點都不特別,其實它就是版本庫中的另外乙個目錄。

4: 「版本號」 的區別

git 沒有乙個全域性的版本號,而 svn 有。

目前為止這是跟 svn 相比, git 缺少的最大的乙個特徵。

5: 「內容完整性」 的區別

git 的內容完整性要優於 svn。

git 的內容儲存使用的是 sha-1 雜湊演算法,這能確保**內容的完整性。確保在遇到磁碟故障和網路問題時,降低對版本庫的破壞。

1:集中式版本控制系統

工作流程:

集中式的版本庫是集中存放在**伺服器的,我們每個人工作的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始工作,工作做完了,再把自己做的工作推送給**伺服器。

**伺服器就好比是乙個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。

如下圖所示:

缺點:集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交乙個只有 10m 的檔案就需要5分鐘,世界上最遙遠的距離就是你做完了工作,但是你提交不上去。

2:分布式版本控制系統

工作流程:

分布式版本控制系統沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫。

這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?

比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

優點:和集中式版本控制系統相比,分布式版本控制系統的安全性要高很多。

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

實際開發工作流程:

在實際使用分布式版本控制系統的時候,很少在兩人之間的電腦上推送版本庫的修改。

因為可能你們倆不在乙個區域網內,兩台電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。

因此,分布式版本控制系統通常也有一台充當「**伺服器」的電腦,但這個伺服器的作用僅僅是用來方便「交換」大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

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

No 1 Git Git與SVN的區別

最核心的區別 svn,cvs等是集中式開發,只有遠端 倉庫伺服器。git不但遠端 倉庫伺服器,而且還有自己本地的 倉庫管理。git更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫 伺服器上chect out 後會在自己的機器上轉殖乙個自己的版本庫。因為每乙個開發人員的電腦上都有乙個loca...

Svn與Git的區別

這篇主要是談談兩者的區別,至於誰優誰劣看官自己思考吧!把第一條理解到位思想到位了做起來才會有的放矢,其他幾條都是用的時候才能體會到 1 最核心的區別git是分布式的,而svn不是分布的。能理解這點,上手會很容易,宣告一點git並不是目前唯一的分布式版本控制系統,還有比如mercurial等,所以說它...

Svn與Git的區別

1 最核心的區別git是分布式的,而svn不是分布的。能理解這點,上手會很容易,宣告一點git並不是目前唯一的分布式版本控制系統,還有比如mercurial等,所以說它們差不許多。話說回來git跟svn一樣有自己的集中式版本庫和server端,但git更傾向於分布式開發,因為每乙個開發人員的電腦上都...