1.什么是版本控制系統(tǒng)?
版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來(lái)查閱特定版本修訂情況的系統(tǒng)。
Git是一個(gè)開源的分布式版本控制系統(tǒng),用以有效、高速的處理從很小到非常大的項(xiàng)目版本管理。?Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源碼的版本控制軟件。
2.版本控制系統(tǒng)的發(fā)展?
2.1 本地版本控制系統(tǒng)
許多人習(xí)慣用復(fù)制整個(gè)項(xiàng)目目錄的方式來(lái)保存不同的版本,或許還會(huì)改名加上備份時(shí)間以示區(qū)別。 這么做唯一的好處就是簡(jiǎn)單,但是特別容易犯錯(cuò)。 有時(shí)候會(huì)混淆所在的工作目錄,一不小心會(huì)寫錯(cuò)文件或者覆蓋意想外的文件。為了解決這個(gè)問題,人們很久以前就開發(fā)了許多種本地版本控制系統(tǒng),大多都是采用某種簡(jiǎn)單的數(shù)據(jù)庫(kù)來(lái)記錄文件的歷次更新差異。

2.2 集中式版本控制系統(tǒng)
集中化的版本控制系統(tǒng)(Centralized Version Control Systems,簡(jiǎn)稱 CVCS)應(yīng)運(yùn)而生。 這類系統(tǒng),諸如 CVS、Subversion 以及 Perforce 等,都有一個(gè)單一的集中管理的服務(wù)器,保存所有文件的修訂版本,而協(xié)同工作的人們都通過(guò)客戶端連到這臺(tái)服務(wù)器,取出最新的文件或者提交更新。 多年以來(lái),這已成為版本控制系統(tǒng)的標(biāo)準(zhǔn)做法。

2.3 分布式版本控制系統(tǒng)
于是分布式版本控制系統(tǒng)(Distributed Version Control System,簡(jiǎn)稱 DVCS)面世了。 在這類系統(tǒng)中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客戶端并不只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整地鏡像下來(lái)。 這么一來(lái),任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,事后都可以用任何一個(gè)鏡像出來(lái)的本地倉(cāng)庫(kù)恢復(fù)。 因?yàn)槊恳淮蔚目寺〔僮?,?shí)際上都是一次對(duì)代碼倉(cāng)庫(kù)的完整備份。

3.git版本控制工具好處?
?優(yōu)勢(shì):
速度快 :有本地版本庫(kù)和遠(yuǎn)程庫(kù)之分,先提交本地(快)在推送到遠(yuǎn)程
簡(jiǎn)單的設(shè)計(jì) :?
對(duì)非線性開發(fā)模式的強(qiáng)力支持(允許成千上萬(wàn)個(gè)并行開發(fā)的分支)
完全分布式 : 保證控制工具始終是可用
有能力高效管理類似 Linux 內(nèi)核一樣的超大規(guī)模項(xiàng)目(速度和數(shù)據(jù)量)