Git 簡介(上):版本控制 與 Git 的崛起

兄弟篇:Git 簡介(下):基本命令介紹與簡單教程

Git 是一個自由的欲侮、非常優(yōu)秀且流行的版本控制系統(tǒng)。本文主要簡單介紹一下 Git 的一些基本常識肋联,包括什么是版本控制威蕉、Git 的歷史、原理等和一些常用的 Git 命令橄仍。

本文有許多內(nèi)容來自維基百科相關(guān)話題頁韧涨。

什么是版本控制系統(tǒng)


通過文檔控制,記錄工程項目的每個模塊的改動歷程侮繁,并為每次改動編上序號虑粥。

上面的描述太學(xué)術(shù),舉個更容易理解的例子:我創(chuàng)建了一個項目宪哩,文件A娩贷、B、C等锁孟,命名為版本 “1”彬祖。經(jīng)過測試發(fā)現(xiàn)有個bug,修改之后版本改為 “2”罗岖。后來經(jīng)過若干次修改到了版本 “n”,我又加了些代碼腹躁,提交過后版本改為 “n+1”桑包,結(jié)果發(fā)現(xiàn)剛提交的代碼很糟糕,需要推掉重來纺非,我可以回退到版本 “n”哑了,甚至之前的任意版本重新來過。

版本控制就是提供項目的設(shè)計者烧颖,將設(shè)計恢復(fù)到之前任一狀態(tài)的選擇權(quán)弱左,這種選擇權(quán)在設(shè)計過程無法進行下去時特別重要。


應(yīng)用了版本控制的項目-圖片來自維基百科

版本控制系統(tǒng)分為 集中式 和 分布式


** 集中式版本控制系統(tǒng) **炕淮,又稱主從式版本控制系統(tǒng)拆火。這類系統(tǒng),都有一個單一的集中管理的服務(wù)器涂圆,保存所有文件的修訂版本们镜,而協(xié)同工作的人們都通過客戶端連到這臺服務(wù)器,取出最新的文件或者提交更新润歉。


集中式版本控制系統(tǒng)圖解
集中式版本控制系統(tǒng)圖解

** 分布式版本控制系統(tǒng) **也有一個“中央服務(wù)器”模狭,但每個人的電腦上都是一個完整的版本庫,中央服務(wù)器的作用僅僅是方便“交換”大家的修改踩衩,沒有它大家也一樣干活嚼鹉,只是交換修改不方便而已贩汉。這樣,你工作的時候即使不聯(lián)網(wǎng)也可以锚赤,因為版本庫就在你自己的電腦上匹舞。當多個人協(xié)作時,只需把各自的修改推送給對方宴树,就可以互相看到對方的修改了策菜。


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

分布式版本控制系統(tǒng)在安全性、功能性酒贬、便捷性等方面比集中式要更加好一些又憨。

Git


Git 是一個分布式版本控制系統(tǒng),由 Linux 開源社區(qū)開發(fā)锭吨,最初的設(shè)計目的是為了方便管理 Linux 內(nèi)核的開發(fā)蠢莺。

自2002年開始,林納斯·托瓦茲決定使用 BitKeeper 作為 Linux 內(nèi)核主要的版本控制系統(tǒng)用以維護代碼零如,并獲得 BitMover 公司授權(quán)的對 BitKeeper 的免費使用權(quán)躏将。因為 BitKeeper 為非自由軟件,這個決定在崇尚自由軟件精神的 Linux 開源社區(qū)中長期遭受質(zhì)疑考蕾。在 Linux 社區(qū)中祸憋,特別是理查德·斯托曼自由軟件基金會的成員,主張應(yīng)該使用開放源代碼的軟件來作為 Linux 核心的版本控制系統(tǒng)肖卧。林納斯·托瓦茲曾考慮過采用現(xiàn)成軟件作為版本控制系統(tǒng)(例如 Monotone)蚯窥,但這些軟件都存在一些問題,特別是性能不佳∪剩現(xiàn)成的方案拦赠,如 CVS 的架構(gòu),受到林納斯·托瓦茲的批評葵姥。

2005年荷鼠,安德魯·垂鳩寫了一個簡單程序,可以連接 BitKeeper 的存儲庫榔幸,BitKeeper 著作權(quán)擁有者拉里·麥沃伊認為安德魯·垂鳩對 BitKeeper 內(nèi)部使用的協(xié)議進行逆向工程允乐,決定收回無償使用 BitKeeper 的授權(quán)。Linux 內(nèi)核開發(fā)團隊與 BitMover 公司進行蹉商削咆,但無法解決他們之間的歧見喳篇。林納斯·托瓦茲決定自行開發(fā)版本控制系統(tǒng)替代 BitKeeper,以十天的時間态辛,編寫出第一個git版本麸澜,于2005年以 GPL 協(xié)議發(fā)布。

Git 在設(shè)計之初就制訂了若干目標:速度 奏黑、 簡單的設(shè)計 炊邦、 對非線性開發(fā)模式的強力支持(允許上千個并行開發(fā)的分支)编矾、完全分布式、有能力高效管理類似 Linux 內(nèi)核一樣的超大規(guī)模項目(速度和數(shù)據(jù)量)馁害。Git 和其他版本控制系統(tǒng)(如 CVS)有不少的差別窄俏,Git 本身關(guān)心文件的整體性是否有改變,但多數(shù)的 CVS 或 Subversion 系統(tǒng)則在乎文件內(nèi)容的差異碘菜。因此 Git 更像一個文件系統(tǒng)凹蜈,直接在本機上獲取數(shù)據(jù),不必連接到主機端獲取數(shù)據(jù)忍啸。自誕生于 2005 年以來仰坦,Git 日臻成熟完善,迅速成為最流行的分布式版本控制系統(tǒng)计雌,在高度易用的同時悄晃,仍然保留著初期設(shè)定的目標。它的速度飛快凿滤,極其適合管理大項目妈橄,它還有著令人難以置信的非線性分支管理系統(tǒng),可以應(yīng)付各種復(fù)雜的項目開發(fā)需求翁脆。2008年眷蚓,GitHub網(wǎng)站上線了,它為開源項目免費提供Git存儲反番,無數(shù)開源項目開始遷移至GitHub沙热,包括jQuery,PHP恬口,Ruby等等校读。

Linus Torvalds 大神

歷史就是這么偶然沼侣,如果不是當年 BitMover 公司與 Linux 社區(qū)的撕逼祖能,可能現(xiàn)在我們就沒有免費而超級好用的 Git 了。

兄弟篇:Git 簡介(下):基本命令介紹與簡單教程

版權(quán)聲明 自由轉(zhuǎn)載 - 保持署名 - 不可商用 - 不可演繹 (CC3.0 創(chuàng)意共享3.0許可證

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛾洛,一起剝皮案震驚了整個濱河市养铸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轧膘,老刑警劉巖钞螟,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谎碍,居然都是意外死亡鳞滨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門蟆淀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯啦,“玉大人澡匪,你說我怎么就攤上這事“矗” “怎么了唁情?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甫匹。 經(jīng)常有香客問我甸鸟,道長,這世上最難降的妖魔是什么兵迅? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任抢韭,我火速辦了婚禮,結(jié)果婚禮上喷兼,老公的妹妹穿的比我還像新娘篮绰。我一直安慰自己,他們只是感情好季惯,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布吠各。 她就那樣靜靜地躺著,像睡著了一般勉抓。 火紅的嫁衣襯著肌膚如雪贾漏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天藕筋,我揣著相機與錄音纵散,去河邊找鬼。 笑死隐圾,一個胖子當著我的面吹牛伍掀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播暇藏,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼蜜笤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盐碱?” 一聲冷哼從身側(cè)響起把兔,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓮顽,沒想到半個月后县好,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡暖混,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年缕贡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡晾咪,死狀恐怖黔漂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情禀酱,我是刑警寧澤炬守,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站剂跟,受9級特大地震影響减途,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜曹洽,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一鳍置、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧送淆,春花似錦税产、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阐斜,卻和暖如春衫冻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谒出。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工隅俘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笤喳。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓为居,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杀狡。 傳聞我的和親對象是個殘疾皇子蒙畴,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • GIT分布式版本控制系統(tǒng)最佳實踐 這篇文章來自于老男孩教育高級架構(gòu)師班12期的徐亮偉同學(xué)。 首先感謝老男孩架構(gòu)師班...
    meng_philip123閱讀 3,400評論 4 36
  • 有夢想是一件很幸福的事情捣卤,那是一種遼遠的希望忍抽,看起來渺茫又熠熠發(fā)光八孝。不拒絕董朝,不負責,不承諾干跛。永遠不會讓你失望子姜,永遠...
    有聊星人_幾人歸閱讀 510評論 0 0
  • 我心安如初。 -----她給自己撐起了一片天,給她的兒女們撐起了一個家哥捕,給我撐起了一個世界牧抽。 我啊,有一個很平凡又...
    紀曉閱讀 557評論 0 0
  • 近期寶平心靜氣坐下來,認認真真思考總結(jié)了幾個可以拒絕拖延凫佛,幫助實現(xiàn)目標的方法讲坎。 這個方法就是:趕緊行動,行動愧薛,...
    付琴貓小魚閱讀 660評論 5 6
  • 小靈是怕慣了雨哥的晨炕。 從她嫁過來第三天,雨哥就開始打她毫炉。宿醉頭疼了打她瓮栗,天氣燥熱難耐打她,飯菜不合...
    TZXJ閱讀 287評論 0 0