Git與Svn的區別

大漠帝國發表於2017-08-21

Git與Svn的區別,主要有五點
程式碼管理——Git
(一)功能[1]
GIT主要是是個版本控制系統,
同時它也是個內容管理系統(CMS),工作管理系統等。
主要有用於clone,push,branch ,merge ,pull ,rebase等操作。

(二)Git與Svn比的優點[2]:
(1).GIT是分散式的,SVN不是;
也就是每個開發人員從中心版本庫/伺服器上chect out程式碼後會在自己的機器上克隆一個自己的版本庫;
同時也有利於開源軟體社群的開發。
(2).GIT把內容按後設資料方式儲存,而SVN是按檔案;
.git目錄比較大,它是一個克隆版本,它擁有中心版本庫上所有的東西,例如版本記錄,分支等。
(3).GIT分支和SVN的分支不同;
GIT的分支可以在IDEA下方,卻是更相當的簡單和有趣。
(4)GIT沒有一個全域性的版本號,而SVN有
(5).GIT的內容完整性要優於SVN;
GIT的內容儲存使用的是SHA-1雜湊演算法,這能確保程式碼內容在遇到磁碟故障和網路問題時版本的完整性。
(6).Git下載後在本地不聯網可見所有的log,而SVN卻需要聯網;
專案管理中,SVN相對安全些,而Git所有程式碼可下載,容易洩露。

(三)Git的缺點[3]
(1)概念過於複雜,命令太混亂,非常不直觀,新手上手比較難;
(2)安全機制不好,每人拷貝一份,程式碼非常不安全;
(3)資料量傳遞大,git使用映象,如果是專案圖片視訊多的話,不相關的組員也要去下載;
(4)Git的GUI工具不太理想;
(5)分支合併的歷史很容易搞亂;
(6)版本不相容。

(四)版本控制器(cvs,svn,git等)[4]
版本控制器的歷史:CVS(90年代開發的鼻祖)、SVN(CVS的接班人)、GIT(李納斯開發)
(1)協同管理程式碼,方便多人開發程式碼;
(2)迴歸到以前的任何一個時間點的程式碼處,可以後悔;
(3)方便尋找正確的歷史版本;
(4)有效控制團隊開發中的 程式碼衝突 的問題;
(5)記錄專案組員的具體操作,便於問題排查。

參考文獻:
1.Git的功能:https://jingyan.baidu.com/article/676629976401a154d51b8430.html
2.Git與Svn的五點不同:http://blog.jobbole.com/31444/
3.Git的缺點:https://www.zhihu.com/question/20401926
4.版本控制器:http://blog.sina.com.cn/s/blog_14ecbedb80102x0p8.html

相關文章