兄弟篇: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è)計過程無法進行下去時特別重要。
版本控制系統(tǒng)分為 集中式 和 分布式
** 集中式版本控制系統(tǒng) **炕淮,又稱主從式版本控制系統(tǒng)拆火。這類系統(tǒng),都有一個單一的集中管理的服務(wù)器涂圆,保存所有文件的修訂版本们镜,而協(xié)同工作的人們都通過客戶端連到這臺服務(wù)器,取出最新的文件或者提交更新润歉。
** 分布式版本控制系統(tǒng) **也有一個“中央服務(wù)器”模狭,但每個人的電腦上都是一個完整的版本庫,中央服務(wù)器的作用僅僅是方便“交換”大家的修改踩衩,沒有它大家也一樣干活嚼鹉,只是交換修改不方便而已贩汉。這樣,你工作的時候即使不聯(lián)網(wǎng)也可以锚赤,因為版本庫就在你自己的電腦上匹舞。當多個人協(xié)作時,只需把各自的修改推送給對方宴树,就可以互相看到對方的修改了策菜。
分布式版本控制系統(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等等校读。
歷史就是這么偶然沼侣,如果不是當年 BitMover 公司與 Linux 社區(qū)的撕逼祖能,可能現(xiàn)在我們就沒有免費而超級好用的 Git 了。
兄弟篇:Git 簡介(下):基本命令介紹與簡單教程
版權(quán)聲明 自由轉(zhuǎn)載 - 保持署名 - 不可商用 - 不可演繹 (CC3.0 創(chuàng)意共享3.0許可證)