更新時間:2021年10月07日13時59分 來源:傳智教育 瀏覽次數(shù):
什么是Git?
Git是目前最先進的分布式版本控制系統(tǒng)。
Git發(fā)展歷程
Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢?事實是,在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!你也許會想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費的版本控制系統(tǒng)嗎?因為Linus堅定地反對CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。不過,到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的弟兄們也對這種方式表達了強烈不滿,于是Linus選擇了一個商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權Linux社區(qū)免費使用這個版本控制系統(tǒng)。安定團結的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習氣。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實也不只他一個),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯!),于是BitMover公司怒了,要收回Linux社區(qū)的免費使用權。Linus可以向BitMover公司道個歉,保證以后嚴格管教弟兄們,嗯,這是不可能的。實際情況是這樣的:Linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git!一個月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?大家可以體會一下。Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項目免費提供Git存儲,無數(shù)開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這么偶然,如果不是當年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費而超級好用的Git了。
總結git的兩大特點:
版本控制:可以解決多人同時開發(fā)的代碼問題,也可以解決找回歷史代碼的問題
分布式:Git是分布式版本控制系統(tǒng),同一個Git倉庫,可以分布到不同的機器上。首先找一臺電腦充當服務器的角色,每天24小時開機,其他每個人都從這個“服務器”倉庫克隆一份到自己的電腦上,并且各自把各自的提交推送到服務器倉庫里,也從服務器倉庫中拉取別人的提交。可以自己搭建這臺服務器,也可以使用GitHub網(wǎng)站。
使用github的流程
在實際項目開發(fā)中,按照如下步驟使用git進行代碼管理
1.項目經(jīng)理在開發(fā)之初,創(chuàng)建好倉庫,上傳項目的框架、組員分支
2.組員克隆項目框架,同步分支,按分工開發(fā),在分支提交代碼
3.在需要發(fā)布時,項目經(jīng)理將各分支合并到dev上,再合并到master上
git將代碼開發(fā)分成了工作區(qū)、暫存區(qū)、倉庫區(qū),為了能夠交換代碼還需要有服務器,一般使用github
git四部分的交互方式如下圖