01.Git的簡(jiǎn)介

01.Git的簡(jiǎn)介

  • Git 是一個(gè)免費(fèi)的、開(kāi)源的分布式版本控制系統(tǒng),可以快速高效地處理從小型到大型的各種項(xiàng)目。
  • Git 易于學(xué)習(xí),占地面積小,性能極快。 它具有廉價(jià)的本地庫(kù),方便的暫存區(qū)域和多個(gè)工作流分支等特性。其性能優(yōu)于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

一.何為 版本控制

  版本控制是一種記錄文件內(nèi)容變化,以便將來(lái)查閱特定版本修訂情況的系統(tǒng)。版本控制其實(shí)最重要的是可以記錄文件修改歷史記錄,從而讓用戶能夠查看歷史版本,方便版本切換。
image-20210901204009029

二.為什么需要版本控制

個(gè)人開(kāi)發(fā)過(guò)渡到團(tuán)隊(duì)協(xié)作。

image-20210901204230114

三.版本控制工具

3.1集中式版本控制工具

CVS、SVN(Subversion)、VSS……
集中化的版本控制系統(tǒng)諸如 CVS、SVN 等,都有一個(gè)單一的集中管理的服務(wù)器,保存所有文件的修訂版本,而協(xié)同工作的人們都通過(guò)客戶端連到這臺(tái)服務(wù)器,取出最新的文件或者提交更新。多年以來(lái),這已成為版本控制系統(tǒng)的標(biāo)準(zhǔn)做法。
這種做法帶來(lái)了許多好處,每個(gè)人都可以在一定程度上看到項(xiàng)目中的其他人正在做些什么。而管理員也可以輕松掌控每個(gè)開(kāi)發(fā)者的權(quán)限,并且管理一個(gè)集中化的版本控制系統(tǒng),要遠(yuǎn)比在各個(gè)客戶端上維護(hù)本地?cái)?shù)據(jù)庫(kù)來(lái)得輕松容易。事分兩面,有好有壞。這么做顯而易見(jiàn)的缺點(diǎn)是中央服務(wù)器的單點(diǎn)故障。如果服務(wù)器宕機(jī)一小時(shí),那么在這一小時(shí)內(nèi),誰(shuí)都無(wú)法提交更新,也就無(wú)法協(xié)同工作。

image-20210901204402077

3.2 分布式版本控制工具

Git、Mercurial、Bazaar、Darcs……
像 Git 這種分布式版本控制工具,客戶端提取的不是最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整地鏡像下來(lái)(本地庫(kù))。這樣任何一處協(xié)同工作用的文件發(fā)生故障,事后都可以用其他客戶端的本地倉(cāng)庫(kù)進(jìn)行恢復(fù)。因?yàn)槊總€(gè)客戶端的每一次文件提取操作,實(shí)際上都是一次
對(duì)整個(gè)文件倉(cāng)庫(kù)的完整備份。分布式的版本控制系統(tǒng)出現(xiàn)之后,解決了集中式版本控制系統(tǒng)的缺陷:

  1. 服務(wù)器斷網(wǎng)的情況下也可以進(jìn)行開(kāi)發(fā)(因?yàn)榘姹究刂剖窃诒镜剡M(jìn)行的)
  2. 每個(gè)客戶端保存的也都是整個(gè)完整的項(xiàng)目(包含歷史記錄,更加安全)
image-20210901204453844

四.Git 簡(jiǎn)史

image-20210901204555467

很多人都知道,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ò)?。谑荁itMover公司怒了,要收回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了。

五.Git 工作機(jī)制

image-20210901204815855

六.Git 和代碼托管中心

代碼托管中心是基于網(wǎng)絡(luò)服務(wù)器的遠(yuǎn)程代碼倉(cāng)庫(kù),一般我們簡(jiǎn)單稱為遠(yuǎn)程庫(kù)。

6.1局域網(wǎng)

? GitLab

6.2 互聯(lián)網(wǎng)

? GitHub(外網(wǎng))
? Gitee 碼云(國(guó)內(nèi)網(wǎng)站)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GIT的由來(lái):很多人都知道,Linus在1991年創(chuàng)建了開(kāi)源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最...
    無(wú)為法閱讀 129評(píng)論 0 0
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 7,561評(píng)論 0 4
  • 公元:2019年11月28日19時(shí)42分農(nóng)歷:二零一九年 十一月 初三日 戌時(shí)干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 7,385評(píng)論 0 2

友情鏈接更多精彩內(nèi)容