這是乙個坑,我自己挖的坑。當初ibm的面試時候我在簡歷上寫了用過svn和git(確實用過),單純會用,但是沒有深入研究過,然後問到了svn和git的區別是什麼,我又沒有答出來。啊啊啊!!!很可惜的一道題,其實並不難,就是我不會講,當初也沒有考慮過。現在找了點資料,整理下吧。
一提到git和svn,最大的不同就是git是分布式的,而svn不是分布的。git跟svn一樣有自己的集中式版本庫或伺服器。但,git更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫/伺服器上chect out**後會在自己的機器上轉殖乙個自己的版本庫。所以即使沒有網路也一樣可以commit,檢視歷史版本記錄,建立項 目分支等操作,等網路再次連線上push到server端。而svn就做不到這一點,必須保證有網。
除此之外,git是把內容按元資料方式儲存,而svn是按檔案的。所以你會發現,.git目錄的體積大小跟.svn比較,它們差距很大。因為git目錄是處於你的機器上的乙個轉殖版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。
git沒有乙個全域性版本號,而svn有:目前為止這是跟svn相比git缺少的最大的乙個特徵
git的內容的完整性要優於svn: git的內容儲存使用的是sha-1雜湊演算法。這能確保**內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞
提交(commit)上的不同:在svn,當你提交你的完成品時,它將直接記錄到**版本庫。當你發現你的完成品存在嚴重問題時,你已經無法阻止事情的發生了。如果網路中斷,你根本沒辦法提交!而git的提交完全屬於本地版本庫的活動。而你只需「推」(git push)到主要版本庫即可。git的「推」其實是在執行「同步」(sync)。
git check out後,在offline狀態下可以看到所有的log,svn不可以。
分支(branch)不同。
Git和SVN的區別
如果你之前一直在使用svn來進行版本控制的操作,如果你還沒有機會試試git,我想你現在應該先了解一下它。git不僅僅是乙個版本控制系統,它也是乙個內容管理系統 cms 工作管理系統等。如果你是乙個具有使用svn背景的人,你需要做一定的思想轉換,來適應git提供的一些概念和特徵。所以,這篇文章的主要目...
SVN和GIT的區別
1.git是分布式的,svn不是 這是git和其它非分布式的版本控制系統,例如svn,cvs等,最核心的區別。如果你能理解這個概念,那麼你就已經上手一半了。需要做一點宣告,git並不是目前第乙個或唯一的分布式版本控制系統。還有一些系統,例如bitkeeper,mercurial等,也是執行在分布式模...
Git和SVN的區別
git和svn都是 管理系統,總結了下兩者的區別 git是分布式的,每個人在本地都可以一次或多次提交 到自己的庫,在合適時間在提交到主庫。而svn是集中式的,一提交就是到主庫 git分支可以只自己見 未push前 svn新建的分支所有人可見 git分布式可以離線開發,svn不行,當 伺服器故障時,s...