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.參考文獻:
參考二:版本控制系統-集中式VS分散式
作者:遠望的雲
連結:https://www.jianshu.com/p/88509befbd19
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。
更多內容,可以加入IT交流群565734203與大家一起討論交流
這裡是技能樹·IT修真院:https://www.jnshu.com,初學者轉行到網際網路的聚集地