【css-002】Git和SVN的區(qū)別,如何在webstrom上配置SVN?

大家好,我是IT修真院北京分院web第29期學(xué)員吳昊杰,一枚正直純潔善良的web程序員。

【css-02】

【北京小課堂】svn和git有什么區(qū)別? webstorm怎樣配置svn?


1.背景介紹

為什么要版本控制系統(tǒng)?

現(xiàn)在的軟件開發(fā)工作經(jīng)常會需要修改文檔代碼,一份文件可能會有很多的不同版本,一旦丟了某個文件或者忘了放在哪里,一個個去找太麻煩。

于是就會想到如果有一個軟件,能夠幫我記住每次文件的改動,而且還可以和同事協(xié)同工作,就不用自己去管理一堆文件了,也不需要傳來傳去導(dǎo)致丟失。

所以版本控制系統(tǒng)就這樣誕生了。

它能夠具體的做記錄,具體的記錄每一步的改變,可以與小伙伴同步完成一個項目,這是版本控制系統(tǒng)最重要的作用。

2.知識剖析

SVN介紹

什么是SVN?Subversion的簡稱,有一種說法:SVN=版本控制+備份服務(wù)器。 它可以幫你記住每次上傳到這個服務(wù)器的檔案內(nèi)容,并自動賦予 每次變更 一個版本號。 我們用來存放(上傳過來的)檔案的地方叫做Repository。Repository的中文意思是倉庫、貯藏室、博物館。 我們有任何修改都可以上傳到Repository里。針對每次的上傳,SVN server都會賦予一個新的版本。同時,也會記錄每次上傳的時間。 我們以后可以從Repository中下載曾經(jīng)提交的檔案。我們可以取到最新的版本,也可以取得之前任何一個版本。如果忘記了版本,還可以靠記憶獲取某個日期的版本。

Git介紹

Git是一種分布式的版本管理系統(tǒng),Linux的創(chuàng)造者Linus寫的。git的作用就是對文件進行版本管理,方便在不同版本進行切換修改,類似文件分不同時間備份讓后需要時找回其中一份代替,不過更方便使用。

至于Git的缺點就是命令太混亂,非常不直觀,命令行幫助提示晦澀難懂。斷網(wǎng)的時候很可能不知道怎么使用Git

3.常見問題

1.SVN和Git有什么區(qū)別?

2.webstorm怎樣配置svn?

4.解決方案

SVN和Git有什么區(qū)別?

1、SVN屬于集中化的版本控制系統(tǒng),Git是一個分布式版本控制系統(tǒng)。

2、Git把內(nèi)容按元數(shù)據(jù)方式存儲,而SVN是按文件。

3、Git的分支卻是相當(dāng)?shù)暮唵魏陀腥?SVN較為復(fù)雜。

4、Git的內(nèi)容完整性要優(yōu)于SVN。

5、Git沒有一個全局的版本號,而SVN有。

1.1、SVN屬于集中化的版本控制系統(tǒng),有個不太精確的比喻:SVN = 版本控制+ 備份服務(wù)器 SVN使用起來有點像是檔案倉庫的感覺,支持并行讀寫文件,支持代碼的版本化管理,功能包括取出、導(dǎo)入、更新、分支、改名、還原、合并等。 Git是一個分布式版本控制系統(tǒng),操作命令包括:clone,pull,push,branch ,merge ,rebase,Git擅長的是程序代碼的版本化管理。

1.2、GIT跟SVN一樣有自己的集中式版本庫或服務(wù)器。但GIT更傾向于被使用于分布式模式,也就是每個開發(fā)人員從中 心版本庫/服務(wù)器上check out代碼后會在自己的機器上克隆一個自己的版本庫。可以這樣說,如果你被困在一個不能連接網(wǎng)絡(luò)的地方時,你仍 然能夠提交文件,查看歷史版本記錄,創(chuàng)建項目分支,對一些人來說,這好像沒多大用處,但當(dāng)你突然遇到?jīng)]有 網(wǎng)絡(luò)的環(huán)境時,這個將解決你的大麻煩。

2.1、SVN這類版本控制系統(tǒng)則關(guān)心文件內(nèi)容的具體差異

每次記錄有哪些文件作了更新,以及都更新了哪些行的什么內(nèi)容,SVN 服務(wù)器上保存著唯一的一份歷史版本庫,所以是越詳細越好了,我們想要查看一下某個文件的與昨天的版本相比的更新變動信息SVN的優(yōu)勢就顯示出來了

2.2、Git 關(guān)心文件數(shù)據(jù)的整體是否發(fā)生變化

Git 并不保存這些前后變化的差異數(shù)據(jù)。實際上,Git更像是把變化的文件作快照后,記錄在一個微型的文件系統(tǒng)中。每次提交更新時,它會縱覽一遍所有文件的指紋信息并對文件作一快照,然后保存一個指向這次快照的索引。為提高性能,若文件沒有變化,Git 不會再次保存,而只對上次保存的快照作一鏈接。

3.1、svn分支是一個完整的目錄,且這個目錄擁有完整的實際文件。如果工作成員想要開啟新的分支,那將會影響“全世界”!每個人都會擁有和你一樣的分支。如果你的分支是用來對系統(tǒng)模塊進行安全檢查測試的,那將會像傳染病一樣,你改一個分支,還得讓其他人重新切分支重新下載,而且這些代碼很可能對穩(wěn)定版本還是具有破壞性的。

3.2、Git每個工作成員可以任意在自己的本地版本庫開啟無限個分支。舉例:當(dāng)我想嘗試破壞自己的程序(安檢測試),并且想保留這些被修改的文件供日后使用, 我可以開一個分支,做我喜歡的事。完全不需擔(dān)心妨礙其他工作成員。只要我不合并及提交到主要版本庫,沒有一個工作成員會被影響。等到我不需要這個分支時, 我只要把它從我的本地版本庫刪除即可。無痛無癢。

4.Git 的內(nèi)容完整性要優(yōu)于SVN。因為Git 在commit(存儲在本地)或者push(上傳到遠程倉庫)之前,通過對文件的內(nèi)容或目錄的結(jié)構(gòu)計算出一個 SHA-1哈希值,作為指紋字符串進行內(nèi)容的校驗,并將此結(jié)果作為數(shù)據(jù)的唯一標(biāo)識和索引,在遠處倉庫接受到commit的文件之后,會再計算一遍哈希值然后跟傳遞過來的哈希值做比較,如果不一致,說明文件在傳輸時變得不完整,或者磁盤損壞導(dǎo)致文件數(shù)據(jù)損壞。

5.SVN只能有一個指定中央版本庫。當(dāng)這個中央版本庫有問題時,所有工作成員都一起癱瘓直到版本庫維修完畢或者新的版本庫設(shè)立完成。而 Git可以有無限個版本庫?;蛘撸_的說法,每一個Git都是一個版本庫,區(qū)別是它們是否擁有活躍目錄。這能確保代碼內(nèi)容的完整性,確保在遇到磁盤故障和網(wǎng)絡(luò)問題時降低對版本庫的破壞。

優(yōu)缺點比較

1.SVN優(yōu)缺點

優(yōu)點: 1、 優(yōu)異的跨平臺支持。 2、 簡單易用。 3、 功能完善穩(wěn)定。 4、 適合開發(fā)人數(shù)不多的項目開發(fā)。

缺點: 1、 服務(wù)器壓力太大,數(shù)據(jù)庫容量暴增。 2、 如果不能連接到服務(wù)器上,基本上不可以工作,看上面第二步,如果服務(wù)器不能連接上,就不能提交,還原,對比等等。 3、 不適合開源開發(fā)(開發(fā)人數(shù)非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明確的權(quán)限管理機制(例如分支訪問限制),可以實現(xiàn)分層管理,從而很好的解決開發(fā)人數(shù)眾多的問題。

2.Git優(yōu)缺點

優(yōu)點: 1、適合分布式開發(fā),強調(diào)個體。 2、公共服務(wù)器壓力和數(shù)據(jù)量都不會太大。 3、速度快、靈活。 4、任意兩個開發(fā)者之間可以很容易的解決沖突。 5、離線工作。

缺點: 1、高昂的學(xué)習(xí)成本。 2、糟糕的抽象邏輯。 3、可能把事情變遭,Git的自由度較高,Git沒有保護機制。 4、拙略的跨平臺支持。

2.webstorm怎樣配置svn?

下載安裝sliksvn

在webstorm上配置sliksvn

輸入svn插件安裝的位

如何checkout代碼

根據(jù)服務(wù)器情況選擇svn信息,添加好地址就可以導(dǎo)入項目的版本庫了。

SVN服務(wù)器地址:

如何提交代碼, 在文件上選擇右鍵在彈出來的提示框點擊commit,就可以看自己更 改過的文件。

5.拓展思考

SVN 和 Git 哪個更適用于項目管理?

Git適用于參與開源項目的開發(fā)者。他們由于水平高,更在乎的是效率而不是易用性。SVN則不同,它適合普通的公司開發(fā)團隊。使用起來更加容易。

使用的場合不同。Git適用于通過Internet,有多個開發(fā)角色的單個項目開發(fā),SVN適合企業(yè)內(nèi)部由項目經(jīng)理統(tǒng)一協(xié)調(diào)的多個并行項目的開發(fā)。

Git適用于單純的軟件項目,SVN擅長多項目管理。

6.參考文獻

參考一:廖雪峰Git教程

參考二:Git 和 SVN 之間的五個基本區(qū)別

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

參考四:Svn與Git的區(qū)別

參考五:webstorm11 配置git步驟

參考六:什么是SVN

參考七:版本控制:集中式VS分布式

參考八:git是什么?

今天的分享就到這里啦,歡迎大家點贊、轉(zhuǎn)發(fā)、留言、拍磚~


----------------------------------------------------------------------------------------------------------------------------------

騰訊視頻

PPT鏈接

集中式
分布式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容