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

圖片描述
這是我們開(kāi)始學(xué)習(xí) Git 的第一節(jié)課,主要帶大家初識(shí) Git。本節(jié)課會(huì)從 Git 的誕生、以及 Git 是什么、Git 能做什么這幾個(gè)方面進(jìn)行一個(gè)簡(jiǎn)單的介紹,讓大家對(duì) Git 有一個(gè)初步的了解,為以后的課程做一個(gè)鋪墊。好了,讓我們開(kāi)始走進(jìn) Git 的世界!

1. Git 的前世今生

我們學(xué)一樣技術(shù)或者一種工具,剛開(kāi)始最好先了解一下它的來(lái)龍去脈。雖然無(wú)關(guān)使用,但通過(guò)它背后的故事可能會(huì)激發(fā)起我們學(xué)習(xí)它的濃厚興趣,從這一點(diǎn)來(lái)講還是有實(shí)際意義的。

提起 Git,就不得不提起 Linus 和他的 Linux。計(jì)算機(jī)相關(guān)從業(yè)者大多都知道,linus 創(chuàng)建了 Linux 系統(tǒng),但是 Linux 系統(tǒng)并不是由 Linus 一個(gè)人完成的,它依賴(lài)于廣大的開(kāi)發(fā)者源源不斷的貢獻(xiàn)代碼來(lái)共同開(kāi)發(fā)維護(hù)。那么問(wèn)題來(lái)了,這么多人來(lái)共同維護(hù)一個(gè)系統(tǒng),當(dāng)時(shí)大家是怎樣來(lái)保持高效的協(xié)作呢?這么多人提交代碼,是怎么保證代碼不沖突呢?你可能會(huì)想到使用過(guò)的一些版本控制系統(tǒng),不過(guò)可能要讓你失望了,雖然當(dāng)時(shí)有很多版本控制系統(tǒng)像 CVS、SVN 等,但是都被 linus 舍棄了,因?yàn)檫@些集中式的版本控制系統(tǒng)需要聯(lián)網(wǎng),而且速度很受影響。所以,很長(zhǎng)一段時(shí)間內(nèi),都是靠 linus 來(lái)自己手工合并的(默默送上大拇指)。

但是,Linux 系統(tǒng)越來(lái)越龐大,這么下去不是個(gè)問(wèn)題。直到 2002 年左右,BitMover 公司將他們的商業(yè)的版本控制系統(tǒng) BitKeeper 給 Linux 社區(qū)免費(fèi)使用,這下大家的工作量稍微減輕了些。但是好景不長(zhǎng),社區(qū)牛人聚集,還沒(méi)一兩個(gè)手腳亂動(dòng)的?有人試圖破解 BitKeeper 的協(xié)議,但是被 BitMover 公司發(fā)現(xiàn)了,于是乎 BitMover 公司一怒之下收回了他們的使用權(quán)。

本來(lái)單車(chē)變摩托,現(xiàn)在又騎單車(chē)了。不過(guò),Linus 就是 Linus,怎么可能重走舊路呢,畢竟合并代碼手很疼。痛定思痛,沒(méi)花多久自己用 C 開(kāi)發(fā)了一套分布式版本管理系統(tǒng),沒(méi)錯(cuò)就是 Git!

后來(lái) Git 越來(lái)越流行,比如程序員大型交友網(wǎng)站 Github 使用的就是 Git 存儲(chǔ)。

2. Git 是什么

我們先來(lái)看下官方解釋?zhuān)?/p>

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is_ easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

簡(jiǎn)單給大家翻譯下,它的意思是說(shuō):

Git 是一個(gè)免費(fèi)的開(kāi)源分布式版本控制系統(tǒng),旨在快速高效地處理從小型到大型項(xiàng)目的所有內(nèi)容。

Git 易于學(xué)習(xí),且性能出眾。 它的本地分支,方便的暫存區(qū)域和多個(gè)工作流等功能,其性能優(yōu)于 Subversion,CVS,Perforce 和 ClearCase 等 SCM 工具。

其實(shí),翻譯過(guò)來(lái)還是有點(diǎn)晦澀難懂。其中一些概念對(duì)于新手來(lái)說(shuō)很難真正理解。別著急,我挑其中的重點(diǎn)概念來(lái)給大家具體講解下。

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

分布式版本控制系統(tǒng)是相對(duì)于集中式版本控制系統(tǒng)來(lái)說(shuō)的。

集中式版本控制系統(tǒng)首先需要聯(lián)網(wǎng),提交文件速度依賴(lài)于網(wǎng)絡(luò)帶寬。而且,集中式版本控制系統(tǒng)的版本庫(kù)是集中存放在中央服務(wù)器的,每個(gè)人提交內(nèi)容的時(shí)候,需要先提交到中央服務(wù)器,然后再?gòu)闹醒敕?wù)器拉取別人的修改到自己的本地。

分布式版本控制系統(tǒng)沒(méi)有中央服務(wù)器,每個(gè)人本地都是一個(gè)完整的版本庫(kù),所以也不依賴(lài)網(wǎng)絡(luò)。多個(gè)人在自己本機(jī)修改同一個(gè)文件后,只需把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了。

基于以上特點(diǎn)可以看出,分布式版本控制系統(tǒng)的安全性比集中式版本控制系統(tǒng)高。因?yàn)槊總€(gè)人電腦里都有完整的版本庫(kù),你電腦宕機(jī)丟失本地修改后,隨便從其他人那里復(fù)制一個(gè)就可以了。而集中式版本控制系統(tǒng)的中央服務(wù)器要是出了問(wèn)題,那就很難恢復(fù)了。

2.2 分支

分支,可以先簡(jiǎn)單理解成就是一條時(shí)間線(xiàn),對(duì)于給 A 老板的文檔,每個(gè)人每一次提交修改過(guò)程都是這條時(shí)間線(xiàn)上的一個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)共同串成了一條時(shí)間線(xiàn),也就是一個(gè)分支。同樣,你可以創(chuàng)建一個(gè) B 分支,在 B 分支上進(jìn)行另一個(gè)版本的修改提交。
關(guān)于分支的理論與具體操作,我們?cè)诤罄m(xù)詳細(xì)說(shuō)明。

2.3 快照

Git 與任何其他 VCS 之間的主要區(qū)別在于對(duì)數(shù)據(jù)的處理方式。

大多數(shù)其他版本控制系統(tǒng)將信息存儲(chǔ)為基于文件的更改的列表。這些其他系統(tǒng)保存的是對(duì)每個(gè)文件所做的更改(通常稱(chēng)為基于增量的版本控制)。如下圖,每個(gè)版本記錄的是文件發(fā)生的改變。
圖片描述

而 Git 每次提交或保存項(xiàng)目狀態(tài)時(shí),基本上都會(huì)拍下當(dāng)時(shí)所有文件的圖片,并存儲(chǔ)對(duì)該快照的引用。為了提高效率,如果文件沒(méi)有更改,Git 不會(huì)再次存儲(chǔ)該文件,而只是指向它已經(jīng)存儲(chǔ)的先前相同文件的鏈接。Git 更像是一堆快照來(lái)處理數(shù)據(jù)。如下圖,每個(gè)版本記錄的是文件完整的信息。
圖片描述

3. Git 能干什么

舉個(gè)例子,你和多個(gè)同事需要寫(xiě)作完成一個(gè) word 文檔,每個(gè)同事負(fù)責(zé)其中一部分,那么怎么進(jìn)行協(xié)作編寫(xiě)呢?可能會(huì)是各自寫(xiě)完自己的模塊后由某個(gè)人進(jìn)行手工整理成你們需要的內(nèi)容。但這樣其實(shí)很不方便,所以版本控制系統(tǒng)出現(xiàn)了,它的作用替最后那個(gè)人進(jìn)行整理的。當(dāng)然,遠(yuǎn)不止這一個(gè)功能,比如你們的文檔編寫(xiě)完畢后弄丟了,版本控制系統(tǒng)可以幫忙找回歷史文件。再比如,你需要整理多個(gè)不同版本的 word 文檔給不同的 boss 看,你大可不必備份多份副本,版本控制系統(tǒng)同樣可以輕松完成。所有的版本控制系統(tǒng)都是干這些的,像 SVN、CVS 等,當(dāng)然 Git 也不例外。不同的是,Git 有自己的特點(diǎn)和版本管理方式,后續(xù)我們會(huì)詳細(xì)講解。

4. 總結(jié)

好了,今天先帶大家初識(shí) Git,我們先從概念上對(duì) Git 有一個(gè)大致的了解,后續(xù)再通過(guò)實(shí)際的操作和深入的理論講解去學(xué)習(xí) Git。

本小節(jié)知識(shí)點(diǎn)回顧:

  • Git 的誕生:絕地求生
  • Git 是什么:如官網(wǎng)所說(shuō),fast version control
  • Git 能干什么:主要用來(lái)管理多人協(xié)作下對(duì)文件版本的控制