對比了解Git和SVN

   在日常的運維工作中,經常會用到版本控制系統,目前用的最廣泛的版本管理工具就是Git和SVN,接下來我通過對比Git和SVN的方法來了解一下。

一、簡介
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的。
Git是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。

二、特點
SVN是集中式版本管理系統。
集中式的版本控制系統都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。
SVN的特點概括起來主要由以下幾條:
1)每個版本庫有唯一的URL(官方地址),每個用戶都從這個地址獲取代碼和數據;
2)獲取代碼的更新,也只能連接到這個唯一的版本庫,同步以取得最新數據;
3)提交必須有網絡連接(非本地版本庫);
4)提交需要授權,如果沒有寫權限,提交會失敗;
5)提交併非每次都能夠成功。如果有其他人先於你提交,會提示“改動基於過時的版本,先更新再提交”… 諸如此類;
6)衝突解決是一個提交速度的競賽:手快者,先提交,平安無事;手慢者,後提交,可能遇到麻煩的衝突解決。

Git是分佈式的版本管理系統。
在分佈式版本控制系統中,客戶端並不只提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。這麼一來,任何一處協同工作用的服務器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢復。這類系統都可以指定和若干不同的遠端代碼倉庫進行交互。籍此,你就可以在同一個項目中,分別和不同工作小組的人相互協作。你可以根據需要設定不同的協作流程。
Git特點:
1)Git中每個克隆(clone)的版本庫都是平等的。你可以從任何一個版本庫的克隆來創建屬於你自己的版本庫,同時你的版本庫也可以作爲源提供給他人,只要你願意。
2)Git的每一次提取操作,實際上都是一次對代碼倉庫的完整備份。
3)提交完全在本地完成,無須別人給你授權,你的版本庫你作主,並且提交總是會成功。
4)甚至基於舊版本的改動也可以成功提交,提交會基於舊的版本創建一個新的分支。
5)Git的提交不會被打斷,直到你的工作完全滿意了,PUSH給他人或者他人PULL你的版本庫,合併會發生在PULL和PUSH過程中,不能自動解決的衝突會提示您手工完成。
6)衝突解決不再像是SVN一樣的提交競賽,而是在需要的時候才進行合併和衝突解決。

三、功能
SVN 的主要功能
SVN屬於集中化的版本控制系統, SVN使用起來有點像是檔案倉庫的感覺,支持並行讀寫文件,支持代碼的版本化管理,功能包括取出、導入、更新、分支、改名、還原、合併等。
Git的主要功能
Git是一個分佈式版本控制系統,操作命令包括:clone,pull,push,branch ,merge ,push,rebase,Git擅長的是程序代碼的版本化管理。

四、優缺點
SVN 的優缺點**
SVN對中文支持好,操作簡單,使用沒有難度,美工人員,產品人員,測試人員,實施人員都可輕鬆上手。使用界面統一,功能完善,操作方便。SVN大都採用圖形界面操作,直觀,上手快。SVN更適用於項目管理。
Git的優缺點
對程序源代碼進行差異化的版本管理,代碼庫佔極少的空間。易於代碼的分支化管理。不支持中文,圖形界面支持差,使用難度大。不易推廣。Git僅適用於代碼管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章