1. 程式人生 > >SVN和GIT有什麼區別?WEBSTORM怎樣配置SVN?

SVN和GIT有什麼區別?WEBSTORM怎樣配置SVN?

這裡是修真院前端小課堂,每篇分享文從

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】

八個方面深度解析前端知識/技能,本篇分享的是:

【SVN和GIT有什麼區別?WEBSTORM怎樣配置SVN? 】

1.背景介紹

      開發過程中,會不斷髮現新需求,不斷髮現bug。如果沒有版本控制 ,出現的bug和之前的程式碼混在一起很難查詢bug原因。還會出現軟 件程式碼的一致性、軟體內容的冗餘、軟體過程的事物性、軟體開發 過程中的併發性、軟體原始碼的安全性,以及軟體的整合等問題。

2.知識剖析

SVN介紹

SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,支援大多數常見的作業系統。作為一個開源的版本控制系統,Subversion管理著隨時間改變的資料。這些資料放置在一箇中央資料檔案庫(repository)中。這個檔案庫很像一個普通的檔案伺服器,不過它會記住每一次檔案的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽檔案的變動歷史。Subversion是一個通用的系統,可用來管理任何型別的檔案,其中包括了程式原始碼。

集中式程式碼管理

 

集中式程式碼管理的核心是伺服器,所有開發者在開始新一天的工作之前從伺服器獲取程式碼,然後開發,最後解決衝突,提交。所有的版本資訊都放在伺服器上。如果脫離了伺服器,開發者基本上可以說是無法工作的。下面舉例說明:

開始新一天的工作:

1、從伺服器下載專案組最新程式碼。

2、進入自己的分支,進行工作,每隔一個小時向伺服器自己的分支提交一次程式碼(很多人都有這個習慣。因為有時候自己對程式碼改來改去,最後又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些程式碼,就需要這樣做了)。

3、下班時間快到了,把自己的分支合併到伺服器主分支上,一天的工作完成,並反映給伺服器.

SVN的優缺點

SVN對中文支援好,操作簡單,美工人員,產品人員,測試人員,實

施人員都可輕鬆上手。使用介面統一,功能完善,操作方便。集中式版本控制系統缺點就是必須聯網才能工作,對網路的頻寬要求高。

Git介紹

Git是開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案Git是一個開源的分散式版本控制系統,用以有效、高速的處理從很小到非常大的專案版本管理。Git是Linus Torvalds為了幫助管理Linux核心開發而開發的一個開放原始碼的版本控制軟體。分散式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。

分散式程式碼管理

     分散式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫.

分散式程式碼管理

     分散式版本控制系統根本沒有“中央伺服器”,每個人的電腦上都是一個完整的版本庫給伺服器。工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案A,你的同事也在他的電腦上改了檔案A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

Git的優缺點

     對程式原始碼進行差異化的版本管理,程式碼庫佔極少的空間。易於程式碼的分支化管理。不支援中文,圖形介面支援差,使用難度大。不易推廣

3.常見問題

1.SVN和Git有什麼區別?

2.webstorm怎樣配置svn?

     1 .SVN屬於集中化的版本控制系統,有個不太精確的比喻:SVN =版本控制+備份伺服器。

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

     2.GIT跟SVN一樣有自己的集中式版本庫或伺服器。但,GIT更傾向於被使用於分散式模式,也就是每個開發人員從中心版本庫/伺服器上chect out程式碼後會在自己的機器上克隆一個自己的版本庫。可以這樣說,如果你被困在一個不能連線網路的地方時,就像在飛機上,地下室,電梯裡等,你仍然能夠提交檔案,檢視歷史版本記錄,建立專案分支,等。對一些人來說,這好像沒多大用處,但當你突然遇到沒有網路的環境時,這個將解決你的大麻煩。

     3.GIT把內容按元資料方式儲存,而SVN是按檔案所有的資源控制系統都是把檔案的元資訊隱藏在一個類似.svn,.cvs等的資料夾裡。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處於你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。

     4.分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。如果你想知道是否合併了一個分支,你需要手工執行像這樣的命令svn propget svn:mergeinfo,來確認程式碼是否被合併。然而,處理GIT的分支卻是相當的簡單和有趣。你可以從同一個工作目錄下快速的在幾個分支間切換。你很容易發現未被合併的分支,你能簡單而快捷的合併這些檔案。

     5.GIT沒有一個全域性的版本號,而SVN有目前為止這是跟SVN相比GIT缺少的最大的一個特徵。你也知道,SVN的版本號實際是任何一個相應時間的原始碼快照。我認為它是從CVS進化到SVN的最大的一個突破。因為GIT和SVN從概念上就不同,我不知道GIT裡是什麼特徵與之對應。如果你有任何的線索,請在評論裡奉獻出來與大家共享。

      6.GIT的內容完整性要優於SVN:GIT的內容儲存使用的是/雜湊演算法能確保程式碼內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。

1.Webstorm配置sliksvn,具體如圖:

2.在這裡輸入svn外掛安裝的位置: 

3.Checkout程式碼:

     根據伺服器情況選擇svn資訊,新增好地址就可以匯入專案的版本庫。

4.SVN伺服器地址:

5.選擇指定checkout版本:

 

6.提交程式碼:

     在檔案上選擇右鍵在彈出來的提示框點選commit....,檢視看自己更改過的檔案。

 

4.參考文獻:

     參考一:SVN和Git介紹,區別,優缺點,適用範圍總結

     參考二:版本控制系統-集中式VS分散式

     參考三:使用webstorm上傳程式碼到github



作者:遠望的雲
連結:https://www.jianshu.com/p/88509befbd19
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。

更多內容,可以加入IT交流群565734203與大家一起討論交流

這裡是技能樹·IT修真院:https://www.jnshu.com,初學者轉行到網際網路的聚集地