最近在學習使用SVN,於是就產生了一個問題,SVN和git到底有什么區別?我參考了一些網上的資料,做了一個簡單的總結。
一、從原理方面說一下SVN和git的區別
二、從應用方面說一下SVN和git的區別
1、從原理方面說一下SVN和git的區別
首先兩者之間最核心的區別就是git屬於分布式控制系統,SVN屬於集中式控制系統。簡單來說前者就是以每一台主機都當成一台服務器,而后者則是只有一台服務器來維護和控制代碼。其兩者區別如圖所示。
如圖所示
如圖所示,SVN的管理方法是一台主服務器管理所有主機,這樣所有代碼全部傳輸到服務器上統一管理。而git采用單個主機管單個主機的方法,即主機2將主機1中所有的信息和內容拷貝到自己的主機下,而主機3,主機4以此類推。
2、從應用方面說一下SVN和git的區別
搞清楚了原理,我們就能搞清楚應用了。我個人覺得git的性能是完全優於SVN的。因為相比較SVN,git有如下好處:
1、如果一旦出現斷電,SVN里面的數據全部消失,但是git則不會。
2、使用SVN時,必須聯網,否則不能使用。但是git只要第一次將代碼下載到自己的主機上,以后就不用聯網也可以查看歷史記錄什么的了。
最后說一下應用場景:以我們公司為例,SVN是專門用來維護文檔的,而git則是用來維護代碼的。
另外補充一點:SVN和git的區別其實還是挺多的,比如說什么git沒有全局的版本號,不過可能對於我來說目前只有這兩種情況能用到,其他的還沒有做過實驗,因此如果有哪位看官感興趣可以自己去嘗試。
好,就寫道這里吧,祝願大家代碼永無bug。