首頁 培訓(xùn)網(wǎng) 最新資訊 熱門問答

web前端

13126520336 免費(fèi)試聽 在線客服

您的位置: 北京培訓(xùn)網(wǎng) > web前端培訓(xùn)資訊 > 【千鋒互聯(lián)Html5培訓(xùn)】深度剖析版本管理工具

【千鋒互聯(lián)Html5培訓(xùn)】深度剖析版本管理工具

來源:教育聯(lián)展網(wǎng) | 發(fā)布時(shí)間: | 編輯:佚名

精品視頻搶先看,超精細(xì)化講解,手把手的教學(xué),千鋒教育扣丁學(xué)堂讓大家足不出戶也可享受高品質(zhì)的視頻課程。完整版經(jīng)典教程,從進(jìn)階課程到高級(jí)課程限時(shí)發(fā)布。在家學(xué)習(xí)前端,你也可以。

SVN集中式版本管理工具

SVN能干嘛?

為了能夠更好的記錄保留軟件開發(fā)過程中的迭代版本,

你每一次修改后提交的代碼,SVN服務(wù)器都為我們保留了記錄。

為了能夠更好的協(xié)同開發(fā),并有效的解決多人之間的沖突,

多個(gè)人修改一個(gè)文件,把不同的修改進(jìn)行合并,這解決了我們協(xié)同開發(fā)中的一大難題。

為了能夠更便捷的異地同步代碼,

手機(jī)、平板、家里電腦、公司電腦,跟今天的云盤一個(gè)道理。

于是誕生了版本管理工具。SVN便是其中比較流行的一個(gè)工具。


這是一個(gè)集中式的版本管理,所有的數(shù)據(jù)都經(jīng)過中央服務(wù)器進(jìn)行交換同步

Git 分布式版本管理工具

git能干嘛?

功能上跟SVN一樣,只不過它是分布式的,不存在中央服務(wù)器

千鋒互聯(lián)Html5培訓(xùn)

乍看上去,好像灰常復(fù)雜,其實(shí)不然。就是說根本沒有服務(wù)器的概念,或者人人都是服務(wù)器。任意兩臺(tái)電腦都可以互相通信

但是這樣帶來一個(gè)問題,就是如果要同步代碼,至少要保證兩臺(tái)機(jī)器同時(shí)開機(jī),所以使用git的通常做法是這樣的:

千鋒互聯(lián)Html5培訓(xùn)

后來有了github這個(gè)神奇的網(wǎng)站,它提供24小時(shí)不間斷的服務(wù),并且在github上提交的代碼可以公開分享,來自全球的小伙伴學(xué)習(xí)別人的代碼更加的方便了,并且還是以版本管理的方式來同步代碼。于是git就瞬間流行起來了。

但是由于git復(fù)雜的原理,讓它的學(xué)習(xí)成本比svn高出了很多倍。非常不適合初學(xué)者

接下來,我嘗試用圖解的方式講解git原理,讓大家弄明白,git 為什么會(huì)看起來比SVN復(fù)雜很多卻又很受歡迎。

千鋒互聯(lián)Html5培訓(xùn)

但不同的是,github自己編寫了一套程序接口,你可以經(jīng)過在它的網(wǎng)站上注冊(cè),然后在github上建立屬于你自己的倉(cāng)庫,然后把代碼同步過去,注意我用了同步這個(gè)詞,不是提交,因?yàn)榇蠹乙欢ㄒ涀?,這是分布式的!!

就是說github只是眾多客戶端之一(雖然它有點(diǎn)特殊),這里沒有服務(wù)器和客戶端的概念。

(請(qǐng)注意,git是一個(gè)分布式版本管理軟件,github是一個(gè)網(wǎng)站平臺(tái),請(qǐng)不要把二者混為一談)

千鋒互聯(lián)Html5培訓(xùn)

這樣一來,大家就可以直接從github上下載,修改后都向github上面提交,就方便多了

千鋒互聯(lián)Html5培訓(xùn)

講到這里,你一定會(huì)有疑問,這跟SVN有什么區(qū)別?SVN貌似不用這么折騰吧?

第1,這跟SVN確實(shí)沒什么區(qū)別。

但是,如果github網(wǎng)站掛掉了,張三、李四、王五仍然可以直接互相同步代碼,SVN做的到嗎?

第二,這個(gè)要重點(diǎn)說,git不單單只有這一點(diǎn)好處,更大的好處,在于它和SVN有著不同的管理文件的方式。

一個(gè)軟件從建立,到zui后發(fā)布上線,如果把每一次提交都算上,你覺得它大概要經(jīng)歷幾萬個(gè)版本?

我們都知道版本管理zui大的好處就是可以保留我們的歷史版本,在代碼開發(fā)到一半的時(shí)候,不至于無故丟失,還可以查看BUG的來龍去脈。

那怎么樣做到這一點(diǎn)呢?

如果每一次修改,都保留一個(gè)文件副本,那需要多少硬盤才能裝的下?

SVN是集中式管理,大家把文件都提交到一個(gè)地方,這服務(wù)器的存儲(chǔ)壓力就大了去了。

因此它對(duì)于文件的版本控制,采用增量式的,只記錄修改部分,不產(chǎn)生多余的數(shù)據(jù)。

千鋒互聯(lián)Html5培訓(xùn)

但是要知道,只記錄修改,不產(chǎn)生冗余,還得準(zhǔn)確的還原每一個(gè)版本,解決沖突,可真不是一件容易的事情

所以你就明白,為什么到現(xiàn)在SVN還是動(dòng)不動(dòng)一個(gè)誤操作就出現(xiàn)無法提交的錯(cuò)誤,BUG滿天飛。

我們不得不說,SVN是一個(gè)非常優(yōu)秀的版本管理軟件,如果它早一點(diǎn)發(fā)明分支結(jié)構(gòu),如果在github之前就出現(xiàn)了svnhub,也許.....

算了,不提往事了,接下來再說git管理文件的方式。

Git以文件快照的方式保存,也就是說,每一個(gè)版本,就是一個(gè)文件副本

當(dāng)然,對(duì)于沒有變動(dòng)的提交,git會(huì)自動(dòng)生成一個(gè)虛的索引,就像快捷方式,以便節(jié)省空間,

但即便是這樣,你肯定還是覺得,這種做法太浪費(fèi)空間了。所以才發(fā)明了分支(fork)

千鋒互聯(lián)Html5培訓(xùn)

我們還拿github舉例子,現(xiàn)在它既然要變成一個(gè)類似服務(wù)器的角色,為所有人提供代碼托管。

那如何來解決如此大量的冗余呢? 那就是想辦法把冗余放到本地。

首先,我們從github上的項(xiàng)目克隆一份到我們本地,

我們把github上的項(xiàng)目稱為主干,我們自己的稱為分支,我們的修改只提交在本地。

等到版本穩(wěn)定的時(shí)候,或者我負(fù)責(zé)的模塊開發(fā)完成了,再把zui后的版本提交到遠(yuǎn)程倉(cāng)庫。

這個(gè)過程稱為分支的合并

當(dāng)然,能不能合并,還得創(chuàng)建項(xiàng)目的人說了算。

試想一下,你發(fā)起了一個(gè)開源項(xiàng)目1.0,無數(shù)的人來幫你續(xù)寫2.0版本,并向你發(fā)送了合并申請(qǐng)。

你挨個(gè)審查,挑了一個(gè)優(yōu)秀的合并到你的項(xiàng)目中,豈不是很爽?

千鋒互聯(lián)Html5培訓(xùn)

關(guān)于HTML5培訓(xùn),千鋒互聯(lián)是認(rèn)真的! >> https://kaoshi.china.com/xuexiao/bjqf/ 


課程咨詢

咨詢老師:金老師

咨詢電話:010-64707530/15110074071


熱門機(jī)構(gòu)推薦
web前端

免費(fèi)體驗(yàn)課開班倒計(jì)時(shí)

11: 41: 09

稍后會(huì)有專業(yè)老師給您回電,請(qǐng)保持電話暢通

咨詢電話:13126520336

本周熱門資訊

全國(guó)分站 熱門機(jī)構(gòu)

北京web前端培訓(xùn) 上海web前端培訓(xùn) 廣州web前端培訓(xùn) 深圳web前端培訓(xùn) 杭州web前端培訓(xùn) 蘇州web前端培訓(xùn) 南京web前端培訓(xùn) 天津web前端培訓(xùn) 佛山web前端培訓(xùn) 南寧web前端培訓(xùn) 長(zhǎng)沙web前端培訓(xùn) 重慶web前端培訓(xùn) 太原web前端培訓(xùn) 青島web前端培訓(xùn) 寧波web前端培訓(xùn) 鄭州web前端培訓(xùn) 西安web前端培訓(xùn) 廈門web前端培訓(xùn) 武漢web前端培訓(xùn) 成都web前端培訓(xùn) 無錫web前端培訓(xùn) 濟(jì)南web前端培訓(xùn) 昆明web前端培訓(xùn) 貴陽web前端培訓(xùn) 揚(yáng)州web前端培訓(xùn) 徐州web前端培訓(xùn) 珠海web前端培訓(xùn) 合肥web前端培訓(xùn) 長(zhǎng)春web前端培訓(xùn)

深圳博為峰教育廣州博為峰教育深圳中公優(yōu)就業(yè)深圳華清遠(yuǎn)見教育

申請(qǐng)?jiān)嚶犆~

QQ:
加盟合作:0755-83654572