為什么要用git而不是svn


使用了近一年的git之后,再使用svn,發現自己svn這種版本管理工具是十分低效的,主要原因有以下幾個方面:

從使用者角度分析:

1.svn下載源代碼慢。在git中一個幾個G的版本庫,一般一二十分鍾就能下載完畢,但是在svn中要一個小時左右;

2.svn隨時都得要與服務器交互,無論是查看log,還是查看以往的版本你必須跟服務器相連,並且速度奇慢務必,而git做這些幾乎是瞬間的事;

3.各個分支之間的補丁遷移麻煩,在git上只要兩三個命令就可以完事的(其實一個命令,因為需要查找與分支切換),但是在svn上你必須要下載每個分支的代碼,然后比較修改,再上傳;

4.git查看歷史版本速度快,並且不需要聯網。svn必須跟服務器相連才能取得版本,並且取版本非常慢;

5.git自帶有優化過的grep,使得我們查詢相關字符串的效率大大提高

下面從服務器角度說為什么要用git:

1.git版本庫占用空間小(幾乎是svn的分支數之一也就是說如果有四個分支,svn的版本庫的體積將接近git的四倍),SVN每個分支都是一份代碼的copy,而git每個分支只是各個提交點的hash值的集合。分支幾乎不占用什么空間;

2.git是分布式管理系統,我們完全可以不對代碼進行備份,但SVN不行,一旦你服務器的硬盤掛掉你整個代碼庫就完了;

3.git不用時時聯網查詢,並且對文件進行壓縮,使得文件體積大大減小,並且傳輸速度快,svn是單個文件,git是壓縮后的,在使用svn時我已經碰到過好幾次服務器無響應了。由於git很多都可以在本地操作的,所以大大降低了客戶端對服務器的連接,出現這種情況的概率會大大減小;

4:如果客戶端離服務器端非常遠,在網速糟糕的情況下,用svn下代碼簡直是個噩夢

目前關於兩者優劣的最深刻的感觸就這么多。

另外關於從svn遷移到git的感受,我簡單說句就像你用linux和windows的差別,git功能非常強大,但是命令很多,要學的很多,也有很多可以diy的地方。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM