第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
慕課專欄

目錄

索引目錄

Git原理詳解與實(shí)操指南

原價 ¥ 49.00

立即訂閱
01 開篇詞:為什么要使用 Git?
更新時間:2020-04-20 12:45:30
才能一旦讓懶惰支配,它就一無可為。——克雷洛夫

在開發(fā)項(xiàng)目的時候,我們可能會不斷地去修改代碼,但是有時候會遇到,想查看某一時間的代碼這種情況,如果沒有版本控制器,你可能需要不斷地定時備份代碼,但這樣顯然是很麻煩的,而且備份也不一定好用,比如某個時間點(diǎn)并沒有修改代碼,那么備份就重復(fù)了;再比如雖然備份了代碼,但你并不知道兩個版本有什么區(qū)別。

1.1 版本控制系統(tǒng)

為了解決上面的一些問題,一些工程師便嘗試開發(fā)代碼版本控制器系統(tǒng);每次當(dāng)你修改完代碼想進(jìn)行備份時,只需要輸入簡單的命令,版本控制系統(tǒng)便會幫你完成備份操作;

在完成這個備份時候,大體會做這幾件事情,首先把當(dāng)前代碼哈希一下,得到一個哈希 (hash) 值,同時把這個哈希值分配一個版本號,比如上一次的版本號是2,那么這次的版本號便會是3,用來保證它的順序性;接著會比較當(dāng)前的版本與上次版本的一些差異,包括文件差異,和文件里面的內(nèi)容差異,并且會把這些差異單獨(dú)存儲起來,當(dāng)你之后想看某一刻的修改時,可以非常方便地查看。

上面提到的是版本控制系統(tǒng)的最基本功能,因?yàn)閷?shí)際需求不同,所以版本控制器也有不同的類型,最為常見的就是分布式版本控制系統(tǒng)和中央版本控制系統(tǒng)。

1.2 中央版本控制系統(tǒng)

中央版本控制系統(tǒng)必須存在兩個端,服務(wù)端和客戶端,當(dāng)進(jìn)行代碼備份時,客戶端會向服務(wù)端發(fā)出請求,并將此次修改的內(nèi)容發(fā)送到服務(wù)器當(dāng)中去;服務(wù)端收到請求后,會將代碼存儲在服務(wù)器當(dāng)中;同樣當(dāng)客戶端想查看某一個版本的修改內(nèi)容或者想恢復(fù)到某一個版本之時,客戶端也會發(fā)送請求到服務(wù)端,服務(wù)在端接收到請求之后會做出相應(yīng)的處理并返回給客戶端。

圖片描述

從圖中可以看到當(dāng)提交代碼時候,兩個客戶端都是把數(shù)據(jù)推送服務(wù)器當(dāng)中去,拉取的時候代碼也都是從服務(wù)器中獲取,可以看出這是非常典型的 C/S 機(jī)制;張三和李四的交互都必須通過中央服務(wù)器,不能私下直接訪問。

1.3 分布式版本控制系統(tǒng)

分布式版本控制器,主要是將備份的代碼以及記錄完全獨(dú)立在本地存儲,比如說上面提到,當(dāng)你想將代碼恢復(fù)到某一個版本的時候,本地版本控制器,不需要依賴網(wǎng)絡(luò)便可以完成此操作,因?yàn)楸镜匕姹究刂破鲹碛型暾?dú)立的控制系統(tǒng)。

圖片描述

從圖中可以看出,張三和李四不僅僅可以向服務(wù)器推送代碼,服務(wù)器也可以向客戶端推送代碼;并且張三和李四還可以互相推送代碼,同樣拉取代碼也可以從任意一個節(jié)點(diǎn)中拉取,而不必從服務(wù)器中拉取。

所以從分布式版本控制系統(tǒng)本身的功能來說,它們是完全平等的,每一個系統(tǒng)都擁有全部的功能;但在實(shí)際的工作中我們?yōu)榱烁玫毓芾泶a版本,會人為設(shè)置一些規(guī)則來限制代碼推送,所以在圖中的紅色線條通常是不會使用的,另外服務(wù)端通常也不會去主動向客戶端推送和拉取代碼。

1.4 GIT 和 SVN

前面提到兩種版本控制系統(tǒng),我估計(jì)不少人會糾結(jié)該怎么去選擇版本控制系統(tǒng),這里我提一下我的一些看法:目前主流的版本控制系統(tǒng)主要有GitSVN,各自分別代表分布式版本控制系統(tǒng)和中央版本控制系統(tǒng),兩個工具各有優(yōu)勢。為了在后面的文章當(dāng)中方便大家理解,后面將直接使用GitSVN來表述分布式版本控制系統(tǒng)和中央版本控制系統(tǒng),下面我主要從功能、熱度、難度上來進(jìn)行分析GitSVN的優(yōu)勢與劣勢。

1.4.1 功能豐富

Git最大的優(yōu)勢在于功能更加豐富,雖然大部分功能在SVN上也都有,但是卻極不方便,比如說分支功能。在Git中每個客戶端都可以自由創(chuàng)建分支,而SVN中必須由服務(wù)端創(chuàng)建,客戶端才能拉取,但實(shí)際工作中很少會在服務(wù)端執(zhí)行SVN命令;再比如說,在沒有網(wǎng)絡(luò)的情況下,Git依然可以提交代碼,而SVN則不行,因?yàn)楸仨氝B接服務(wù)器才可以提交。當(dāng)然功能上還有很多區(qū)別,這里只是舉了兩個主要的區(qū)別,在實(shí)際操作中Git的功能遠(yuǎn)遠(yuǎn)多于SVN。

1.4.2 流行熱度

在選擇一個軟件的時候,我覺得很多人也會看流行度怎么樣。在 5 年以前,可能SVN占了大部分市場。不過隨著這些年Git的優(yōu)勢和越來越多的人對Git的熟悉,Git已經(jīng)占據(jù)了主流市場,并且Git的生態(tài)也越來越好,這個趨勢可以從 GitHub 和國內(nèi)的代碼托管平臺碼云的合作看出。另外從身邊的朋友中也了解到一些情況,比如:在一線城市使用Git的較多,而在二、三線城市使用SVN的公司則較多,我猜測是這可能主要是由于版本控制系統(tǒng)的操作復(fù)雜度所導(dǎo)致。

1.4.3 學(xué)習(xí)難度

可能看起來本地版本控制器比中央版本控制系統(tǒng)簡單,潛意識會覺得操作也比較方便;但實(shí)際上恰恰相反,中央版本控制系統(tǒng)在操作上會相對簡單,復(fù)雜的只是搭建過程;而本地版本控制系統(tǒng)則是安裝簡單,操作相對復(fù)雜一些。

圖片描述

因?yàn)殚_發(fā)者在使用中央版本控制系統(tǒng)時候,只需要提交代碼和拉取代碼即可,所能操作的項(xiàng)并不多,理解起來也相對簡單;而本地版本控制系統(tǒng)則不同,除了提交代碼到版本控制系統(tǒng)中,還需要將修改的記錄同步給其他開發(fā)者,理解起來也相對復(fù)雜,所以結(jié)論是:常規(guī)操作時候中央版本控制系統(tǒng)操作較為簡單。

1.5 本章小結(jié)

通過前面的介紹,我想大家對版本控制器,應(yīng)該有了一定的認(rèn)識,下面簡單歸納概括一下:

  1. 版本控制系統(tǒng)分為分布式版本控制系統(tǒng)中央版本控制系統(tǒng)。分布式版本控制系統(tǒng)每一個節(jié)點(diǎn)都是獨(dú)立的系統(tǒng),中央版本控制系統(tǒng)是典型的C/S架構(gòu),后面的內(nèi)容分別以GitSVN來表述兩個版本控制系統(tǒng);

  2. 從存儲空間來說GitSVN更加占用空間,因?yàn)?code>Git在每個端都保留了所有的版本歷史,而SVN只在服務(wù)器中保存了歷史版本記錄,在客戶端是沒有保存本地版本歷史的;

  3. Git在流行程度、功能豐富方面比 SVN 有優(yōu)勢,在學(xué)習(xí)難度上, SVN 更占據(jù)優(yōu)勢。

}
立即訂閱 ¥ 49.00

你正在閱讀課程試讀內(nèi)容,訂閱后解鎖課程全部內(nèi)容

千學(xué)不如一看,千看不如一練

手機(jī)
閱讀

掃一掃 手機(jī)閱讀

Git原理詳解與實(shí)操指南
立即訂閱 ¥ 49.00

舉報

0/150
提交
取消