教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

什么是Git?Git發(fā)展歷程

更新時(shí)間:2021年10月07日13時(shí)59分 來(lái)源:傳智教育 瀏覽次數(shù):

什么是Git?

Git是目前最先進(jìn)的分布式版本控制系統(tǒng)。


Git發(fā)展歷程

Linus在1991年創(chuàng)建了開(kāi)源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為L(zhǎng)inux編寫(xiě)代碼,那Linux的代碼是如何管理的呢?事實(shí)是,在2002年以前,世界各地的志愿者把源代碼文件通過(guò)diff的方式發(fā)給Linus,然后由Linus本人通過(guò)手工方式合并代碼!你也許會(huì)想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?因?yàn)長(zhǎng)inus堅(jiān)定地反對(duì)CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費(fèi)的,和Linux的開(kāi)源精神不符。不過(guò),到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫(kù)之大讓Linus很難繼續(xù)通過(guò)手工方式管理了,社區(qū)的弟兄們也對(duì)這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個(gè)商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個(gè)版本控制系統(tǒng)。安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習(xí)氣。開(kāi)發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個(gè)),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯(cuò)!),于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。Linus可以向BitMover公司道個(gè)歉,保證以后嚴(yán)格管教弟兄們,嗯,這是不可能的。實(shí)際情況是這樣的:Linus花了兩周時(shí)間自己用C寫(xiě)了一個(gè)分布式版本控制系統(tǒng),這就是Git!一個(gè)月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?大家可以體會(huì)一下。Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開(kāi)源項(xiàng)目免費(fèi)提供Git存儲(chǔ),無(wú)數(shù)開(kāi)源項(xiàng)目開(kāi)始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒(méi)有免費(fèi)而超級(jí)好用的Git了。


總結(jié)git的兩大特點(diǎn):

版本控制:可以解決多人同時(shí)開(kāi)發(fā)的代碼問(wèn)題,也可以解決找回歷史代碼的問(wèn)題

分布式:Git是分布式版本控制系統(tǒng),同一個(gè)Git倉(cāng)庫(kù),可以分布到不同的機(jī)器上。首先找一臺(tái)電腦充當(dāng)服務(wù)器的角色,每天24小時(shí)開(kāi)機(jī),其他每個(gè)人都從這個(gè)“服務(wù)器”倉(cāng)庫(kù)克隆一份到自己的電腦上,并且各自把各自的提交推送到服務(wù)器倉(cāng)庫(kù)里,也從服務(wù)器倉(cāng)庫(kù)中拉取別人的提交。可以自己搭建這臺(tái)服務(wù)器,也可以使用GitHub網(wǎng)站。


使用github的流程

在實(shí)際項(xiàng)目開(kāi)發(fā)中,按照如下步驟使用git進(jìn)行代碼管理

1.項(xiàng)目經(jīng)理在開(kāi)發(fā)之初,創(chuàng)建好倉(cāng)庫(kù),上傳項(xiàng)目的框架、組員分支

2.組員克隆項(xiàng)目框架,同步分支,按分工開(kāi)發(fā),在分支提交代碼

3.在需要發(fā)布時(shí),項(xiàng)目經(jīng)理將各分支合并到dev上,再合并到master上

git將代碼開(kāi)發(fā)分成了工作區(qū)、暫存區(qū)、倉(cāng)庫(kù)區(qū),為了能夠交換代碼還需要有服務(wù)器,一般使用github


git四部分的交互方式如下圖

github交互方式

0 分享到:
和我們?cè)诰€交談!