Git和SVN之間的區別

2021-07-14 04:16:40 字數 1687 閱讀 8890

1.git是分布式的,svn不是:

分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者機器上都是乙個完整的資料庫。
這是git和其它非分布式的版本控制系統,例如svn,cvs等,最核心的區別。如果你能理解這個概念,那麼你就已經上手一半了。需要做一點宣告,git並不是目前第乙個或唯一的分布式版本控制系統。還有一些系統,例如bitkeeper, mercurial等,也是執行在分布式模式上的。但git在這方面做的更好,而且有更多強大的功能特徵。

git跟svn一樣有自己的集中式版本庫或伺服器。但,git更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫/伺服器上chect out**後會在自己的機器上轉殖乙個自己的版本庫。可以這樣說,如果你被困在乙個不能連線網路的地方時,就像在飛機上,地下室,電梯裡等,你仍然能夠提交檔案,檢視歷史版本記錄,建立專案分支,等。對一些人來說,這好像沒多大用處,但當你突然遇到沒有網路的環境時,這個將解決你的**煩。

2.git把內容按元資料方式儲存,而svn是按檔案:

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

3.git分支和svn的分支不同:

分支在svn中一點不特別,就是版本庫中的另外的乙個目錄。如果你想知道是否合併了乙個分支,你需要手工執行像這樣的命令svn propget svn:mergeinfo

,來確認**是否被合併。感謝ben同學指出這個特徵。所以,經常會發生有些分支被遺漏的情況。

然而,處理git的分支卻是相當的簡單和有趣。你可以從同乙個工作目錄下快速的在幾個分支間切換。你很容易發現未被合併的分支,你能簡單而快捷的合併這些檔案。

4.git沒有乙個全域性的版本號,而svn有:

5.git的內容完整性要優於svn:

git的內容儲存使用的是

sha-1雜湊演算法。這能確保**內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。這裡有乙個很好的關於git內容完整性的討論 –

6.svn 的主要功能

svn屬於集中化的版本控制系統,有個不太精確的比喻:svn = 版本控制+ 備份伺服器

svn使用起來有點像是檔案倉庫的感覺,支援並行讀寫檔案,支援**的版本化管理,功能包括取出、匯入、更新、分支、改名、還原、合併等。

功能有許多我就不一一列了,svn大都採用圖形介面操作,直觀,上手快。

git的主要功能

git是乙個分布式版本控制系統,操作命令包括:clone,pull,push,branch ,merge ,push,rebase,git擅長的是程式**的版本化管理。

svn 和 git 哪個更適用於專案管理?

首先說一下,我是乙個研發團隊的專案經理,svn和git我都用過,svn更適用於專案管理, git僅適用於**管理。

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

Git 和 SVN 之間的區別

把第一條理解到位思想到位了做起來才會有的放矢,其他幾條都是用的時候才能體會到 1 最核心的區別git是分布式的,而svn不是分布的。能理解這點,上手會很容易,宣告一點git並不是目前唯一的分布式版本控制系統,還有比如mercurial等,所以說它們差不許多。話說回來git跟svn一樣有自己的集中式版...

Git 和 SVN 之間的基本區別

如果你在讀這篇文章,說明你跟大多數開發者一樣對git感興趣,如果你還沒有機會來試一試git,我想現在你就要了解它了。git不僅僅是個版本控制系統,它也是個內容管理系統 cms 工作管理系統等。如果你是乙個具有使用svn背景的人,你需要做一定的思想轉換,來適應git提供的一些概念和特徵。所以,這篇文章...

Git和SVN的區別

如果你之前一直在使用svn來進行版本控制的操作,如果你還沒有機會試試git,我想你現在應該先了解一下它。git不僅僅是乙個版本控制系統,它也是乙個內容管理系統 cms 工作管理系統等。如果你是乙個具有使用svn背景的人,你需要做一定的思想轉換,來適應git提供的一些概念和特徵。所以,這篇文章的主要目...