首先來(lái)說(shuō)明一下 Git 和 Github 之間的關(guān)系,Git 是一個(gè)免費(fèi)開(kāi)源的分布式版本控制協(xié)議,而 Github 是一個(gè)基于 Git 版本控制協(xié)議的代碼托管平臺(tái)。換句話就說(shuō),Git 相當(dāng)于一個(gè)版本控制工具,而 Github 相當(dāng)于一個(gè)網(wǎng)站服務(wù)器,為用戶提供 Git 服務(wù),當(dāng)然能夠提供 Git 服務(wù)的可不止 Github 一個(gè),但是 Github 卻只支持 Git 服務(wù)。
還看到有人說(shuō),Github 是全球最大的同性交友平臺(tái),哈哈哈哈,這個(gè)比喻很形象。當(dāng)前技術(shù)發(fā)展的潮流便是免費(fèi)、開(kāi)源,只有向這個(gè)趨勢(shì)發(fā)展,想必才能保持源源不斷的用戶量。我突然在想如果未來(lái)的某一天全部實(shí)現(xiàn)技術(shù)共享和資源共享,那么人與人之間的關(guān)系究竟會(huì)變得怎樣呢??恩,這是一個(gè)值得深思的問(wèn)題。
那么,接下來(lái)說(shuō)一下,Git 究竟是神馬東東。首先先來(lái)洗洗腦~
我們有沒(méi)有曾經(jīng)想過(guò)這樣一個(gè)問(wèn)題,我們電腦上裝了各種七七八八的軟件,聯(lián)網(wǎng)之后電腦每過(guò)一段時(shí)間便會(huì)提醒我們更新軟件啦,此時(shí),你是否好奇,電腦是怎樣控制每一個(gè)軟件在上一版本的基礎(chǔ)上進(jìn)行更新的呢?沒(méi)錯(cuò),正是版本控制系統(tǒng)發(fā)揮了它的作用,版本控制系統(tǒng)通過(guò)控制文檔記錄程序各個(gè)模組功能的改變和更新。并且在軟件開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員每天將當(dāng)前開(kāi)發(fā)的代碼及文檔及時(shí)上傳至版本控制系統(tǒng)服務(wù)器,來(lái)對(duì)我們當(dāng)前開(kāi)發(fā)的代碼及文檔進(jìn)行有效的管理,這樣既能防止我們由于本機(jī)損壞造成代碼的損失,還能及時(shí)查看我們每次對(duì)代碼所做的改動(dòng),而且開(kāi)源的版本控制系統(tǒng)還可以允許你去查看別人的源代碼。這下你終于可以了解版本控制系統(tǒng)的功能了吧,簡(jiǎn)而言之,有了版本控制系統(tǒng),方便你我他。
終于要扯到Git了,接著忽悠~
任何事物的發(fā)展都會(huì)有一個(gè)過(guò)程,不外乎版本控制系統(tǒng),由一開(kāi)始的本地版本控制系統(tǒng)(LVCS),再過(guò)渡到集中化版本控制系統(tǒng)(CVCS),終于發(fā)展到了目前的分布式版本控制系統(tǒng)(DVCS)。Git作為其中的一款分布式版本控制系統(tǒng),誕生于2005年,雖起步較晚,但發(fā)展迅速,據(jù)說(shuō),現(xiàn)在許多著名的公司使用的都是這款系統(tǒng)。Git發(fā)展如此迅猛并且使用這么流行,那么它有什么特點(diǎn)呢??
1.近乎所有操作都是本地執(zhí)行
2.保證完整性
3.一般只添加數(shù)據(jù)
此外,Git 系統(tǒng)上的文件有三種狀態(tài):已修改、已暫存和已提交。并且在Git中引入了三個(gè)工作區(qū)域的概念:倉(cāng)庫(kù)目錄、工作目錄和暫存區(qū)域。(這些概念的詳細(xì)內(nèi)容在鏈接 (1) 和 (2) 中可看到詳細(xì)解釋,在此不贅述)
了解了 Git 的一些基本特點(diǎn),那么接下來(lái)讓我們看一下 Git 是怎樣的工作流程:首先,在工作目錄中修改文件;然后,將文件的快照放入暫存區(qū)域;最后找到暫存區(qū)域的文件,將快照永久性存儲(chǔ)到 Git 倉(cāng)庫(kù)目錄,提交更新。這樣一次完整的 Git 工作就結(jié)束了。
PS:關(guān)于 Git 的內(nèi)容還有許多有待后續(xù)繼續(xù)學(xué)習(xí),今天初步對(duì) Git 有了一個(gè)大致的了解和認(rèn)識(shí),也不知道是否理解正確,還望有心人能夠指教。