svn和git的區別及適用場景

svn和git的區別及適用場景
程序員界的彭于晏 2019-01-28 07:44:00
svn的優勢:
1.優異的跨平臺支持,對windows平臺支持非常友好。
2.簡單易用,安裝後稍微培訓下就知道怎麼操作。
3.代碼,需求,文檔,涉及稿都可以用svn進行管理,適合不同部門的技術非技術的同事協作。
git的優勢:
1.去中心化:Git是沒有中心服務器的,每個人機器上都是一個完整的庫,我們平時開發代碼時的中央服務器其實和我們自己機器上的庫內容是完全一樣的(格式有點不同,是bare的)。雖然平時大家都是將代碼提交到中央服務器上再統一pull別人的代碼,但實際情況你可以總是pull張三的庫,然後push給李四等等操作。
2.本地提交:本地提交好處主要有3點:一, 斷網提交 。二, 小步提交。可以對自己的階段成果有跟蹤,並且提高每次變更的安全性。三,本地庫。這個和斷網提交是同一個實現,但從需求角度出發則略有不同,主要是說即使只有自己一個人開發項目,也可以輕易的讓自己的代碼有版本跟蹤,而不需要去費力建個什麼svn server。四,本地回滾。這個其實是由於本地庫的存在而產生的,但可以減少中央庫上的冗餘版本
3.分支策略:在Git實際開發中分支的分離和merge是屬於日常操作,開啓和合並分支成本相比SVN要小得多:SVN是複製一份代碼到分支目錄,Git則是在分支點做一下標記。隨便一次衝突就會自動產生分支,所以大家每天都在與分支打交道。這便是弱化了分支的概念,由於分支成本很小,因此使得按功能分支的開發模式(每個分支一個功能,開發完了再merge到主幹)變得非常簡單,大家可以完全不需要再因爲擔心SCM成本太高而選用主幹開發模式(所有功能都在主幹上開發,到了發版本前再分離出分支)。
兩者的工作流對比:
svn模式
1.寫代碼。
2.從服務器拉回服務器的當前版本庫,並解決服務器版本庫與本地代碼的衝突。
3.將本地代碼提交到服務器。
git模式
1.寫代碼。
2.提交到本地版本庫。
3.從服務器拉回服務器的當前版本庫,並解決服務器版本庫與本地代碼的衝突。
4.將遠程庫與本地代碼合併結果提交到本地版本庫。
5.將本地版本庫推到服務器。
對比可以看出:分佈式版本管理僅僅是增加了本地庫這個概念,其餘的概念與集中管理並無區別。——但是 svn 在與服務器同步之前無法提交代碼,因而本地修改更容易出問題。
表格說明兩者區別:
在這裏插入圖片描述
總結一下:
當研發成本比較低,協作開發人數不多,開發人員對於版本管理的水平參差不齊的時候,或者對於代碼的安全性要求更高一點的時候,適合用svn。
而對於很多人蔘與開發,代碼量比較大,或者高頻次協作,跨公司,跨地域合作的情況下,更適合用git。

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