Git 與 SVN的區別(分布式 VS 集中式)

2021-08-27 05:55:48 字數 2471 閱讀 3275

區別:

1、git分布式,svn集中式

集中式系統,只有乙個**版本庫一旦故障,影響全部,成員工作必須依靠網路,但資源集中分布式系統,成員都可以是**庫,工作不需要網路

2、git只關心檔案資料的整體是否發生變化,而svn則關心檔案內容的變化。例:svn每次記錄有哪些檔案作了更新,及更新了什麼內容。 而git 並不儲存這些前後變化的差異資料,git像是把變化的檔案作快照後,記錄在乙個微型的檔案系統中。每次提交更新時,它會縱覽一遍所有檔案的指紋資訊並對檔案作一快照,然後儲存乙個指向這次快照的索引。為提高效能,若檔案沒有變化,git 不會再次儲存,而只對上次儲存的快照作一鏈結。

3、git把內容按元資料方式儲存,而svn是按檔案,所有的資源控制系統都是把檔案的元資訊隱藏在乙個類似.svn,.cvs等的資料夾裡。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處於你的機器上的乙個轉殖版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等;

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

5、git 絕大多數操作都只需要訪問本地檔案和資源不必聯網就可以看到所有的歷史版本記錄,而svn 卻需要聯網,**提交,svn 斷開網路或者斷開vpn是無法commit**,而 git先commit到本地,再push的;

6、git 轉殖乙個完整專案的速度非常快,svn 非常慢,例如:轉殖乙份全新的目錄,以同樣擁有五個分支來說,svn是同時複製5個版本的檔案,也就是說重複五次同樣的動作。而git只是獲取檔案的每個版本的 元素,然後只載入主要的分支(master),例如:轉殖乙個擁有將近一萬個提交(commit),五個分支,每個分支有大約1500個檔案的 svn,耗了將近乙個小時!而git只用了區區的1分鐘!

8、git沒有乙個全域性的版本號,而svn有,svn的版本號版本號其實就相當於對應時間的原始碼快照,可用於回退操作。但git可以利用sha-1的唯一來標示乙個**快照,卻也遠比不過svn簡單易懂的版本號,這是svn的乙個重大突破,要遠優於git。

9、svn適於專案管理,git適於**版本管理

svn支援中文,操作簡單,介面統一,功能完善,美工、產品、測試、開發、設計都可以輕鬆上手

git空間佔用率低,易於**分支管理,但圖形介面支援較差,不支援中文,使用難度較大不易上手

乙個研發隊伍正常包括:需求分析、設計、美工、程式設計師、測試、實施、運維,每個成員在工作中都有產出物,包括了文件、設計**、程式**,這些都需要按專案集中進行管理的。svn能清楚的按目錄進行分類管理, 使專案組的管理處於有序高效的狀態。

優缺點:

git優點:

git每台電腦都有乙個版本庫,可以在本地做版本管理;

速度快。git的速度遠超大部分版本管理系統,包括svn

強大的分支管理功能

活躍的開源社群,如最著名的github

缺點:git沒有嚴格的許可權管理控制,一般通過系統設定檔案讀寫許可權的方式來做許可權控制。

工作目錄只能是整個專案。比如 checkout,建分支,都是基於整個專案的。而 svn 可以基於專案中的某乙個目錄

svn1、管理方便,集中式伺服器更能保證安全性。

2、適合開發人數不多的專案開發。

3、相對簡單,好操作

缺點:1、伺服器壓力太大,資料庫容量暴增。

2、如果不能連線到伺服器上,基本上不可以工作

3、如果伺服器不能連線上,就不能提交,還原,對比

3、不適合開源開發。但是一般集中式管理的有非常明確的許可權管理機制(例如分支訪問限制),可以實現分層管理,從而很好的解決開發人數眾多的問題。

svn中文社群:

git內容完整性的討論:

Git與SVN的區別(集中式VS分布式)

原出處 git是目前世界上最先進的分布式版本控制系統,其實 git 跟 svn一樣有自己的集中式版本庫或伺服器,但是git 更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫 伺服器上chect out 後會在自己的機器上轉殖乙個跟中心版本庫一模一樣的本地版本庫。可以這樣說,如果你被困在乙個...

SVN與Git比較(集中式VS分布式)

一 集中式vs分布式 1.subversion屬於集中式的版本控制系統 集中式的版本控制系統都有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本,而協同工作的人們都通過客戶端連到這台伺服器,取出最新的檔案或者提交更新。subversion的特點概括起來主要由以下幾條 每個版本庫有唯一的url 官方...

版本控制工具 git與svn 分布式vs集中式

版本控制 即記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況以及回溯的系統。subversion的特點 1.每個版本庫有唯一的url 官方位址 每個使用者都從這個位址獲取 和資料 2.獲取 的更新,也只能連線到這個唯一的版本庫,同步以取得最新資料 3.提交必須有網路連線 非本地版本庫 4.提...