Git——起步

關(guān)于版本控制

版本控制系統(tǒng)是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來(lái)查閱特定版本修訂情況的系統(tǒng)??蓪?duì)任何類型的文件進(jìn)行版本控制。

本地版本控制

本地版本控制系統(tǒng)通常用復(fù)制整個(gè)項(xiàng)目目錄的方式來(lái)保存不同的版本,或許還會(huì)加上備份時(shí)間以示區(qū)別。這樣做的唯一好處就是簡(jiǎn)單,但特別容易犯錯(cuò),有時(shí)會(huì)混淆所在的工作目錄,一不小心會(huì)寫錯(cuò)文件或覆蓋意想之外的文件。

本地版本控制系統(tǒng)大多都是采用某種簡(jiǎn)單的數(shù)據(jù)庫(kù)來(lái)記錄文件的歷次更新差異。


Figure 1-1 本地版本控制

其中最流行的一種叫做RCS(Real-time Control System - Wikipedia ),它的工作原理是在在硬盤上保存補(bǔ)丁集(補(bǔ)丁是指文件修訂前后的變換);通過(guò)應(yīng)用所有的補(bǔ)丁,可以重新計(jì)算出各個(gè)版本的文件內(nèi)容。

集中化的版本控制系統(tǒng)

集中化的版本控制系統(tǒng)(Centralized Version Control System,簡(jiǎn)稱CVCS)主要為解決在不同系統(tǒng)上的開(kāi)發(fā)者協(xié)同工作問(wèn)題,,諸如CVS、Subversion以及Perforce等,都有一個(gè)單一的集中管理的服務(wù)器,保存所有文件的修訂版本,而協(xié)同工作的人們通過(guò)客戶端連到這臺(tái)服務(wù)器,取出最新的文件或提交更新。


Figure 1-2 集中化的版本控制

這種做法的好處是相教于老式的本地VCS來(lái)說(shuō),現(xiàn)在每個(gè)人都可以在一定程度上看到項(xiàng)目中的其他人正在做什么。而管理員也可以輕松掌控每個(gè)開(kāi)發(fā)者的權(quán)限,并且管理一個(gè)CVCS要遠(yuǎn)比在各個(gè)客戶端上維護(hù)本地?cái)?shù)據(jù)庫(kù)來(lái)得輕松容易。但是這么做顯而易見(jiàn)的缺點(diǎn)是中央服務(wù)器的單點(diǎn)故障。如果宕機(jī)一小時(shí),那么在這個(gè)小時(shí)內(nèi),誰(shuí)也無(wú)法提交更新,也就無(wú)法協(xié)同工作。如果中心數(shù)據(jù)庫(kù)所在的磁盤發(fā)生損壞,又沒(méi)有做恰當(dāng)備份,毫無(wú)疑問(wèn)你將丟失所有數(shù)據(jù)——包括項(xiàng)目的真?zhèn)€變更歷史,只剩下人們?cè)诟髯詸C(jī)器上保留的單獨(dú)快照。本地版本控制也有類似問(wèn)題,只要整個(gè)項(xiàng)目的歷史記錄被保存在單一位置,就有丟失所有歷史更新記錄的風(fēng)險(xiǎn)。

分布式版本控制系統(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ù)的完整備份。


Figure 1-3 分布式版本控制

更進(jìn)一步,許多這類系統(tǒng)都可以指定和若干不同的遠(yuǎn)端代碼倉(cāng)庫(kù)進(jìn)行交互。籍此,你就可以在同一個(gè)項(xiàng)目中,分別和不同小組的人相互協(xié)作。可以根據(jù)需要設(shè)定不同的協(xié)作流程,比如層次模型式的工作流,而這在以前的集中式系統(tǒng)中是無(wú)法實(shí)現(xiàn)的。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 這一章基本上沒(méi)什么大營(yíng)養(yǎng),不愿意看的可以略過(guò)。。。 關(guān)于版本控制 本地版本控制沒(méi)什么可說(shuō)的,最原始的方式。自己根據(jù)...
    重劍無(wú)鋒_Augustine閱讀 376評(píng)論 0 0
  • 今天特別跳,只因一早看到她緊鎖眉頭。 很不喜歡看她這樣,很心疼她這樣。 不知道為什么今天各種欺負(fù)她…氣她。 后來(lái)她...
    Ermao閱讀 102評(píng)論 2 1
  • 流霞橫臥虛 天際紅日半遮臉 風(fēng)卷衣舞 孤影水上橋 飛身去 墜朦朧 心出牢 腳御清風(fēng)遙 此情何日平常...
    念觀詩(shī)詞文化閱讀 399評(píng)論 0 0
  • 三)初次吃飯 五味齋里鏡閣雅間門口圍了五六個(gè)點(diǎn)餐小姐,嘰嘰喳喳好不熱鬧。 “你說(shuō)里面做了四個(gè)帥哥?“一個(gè)服務(wù)員努力...
    微光__weiguang閱讀 343評(píng)論 0 0
  • 旦旦咳嗽還沒(méi)好。 每天吃藥都得哭一場(chǎng),好在這次醫(yī)生開(kāi)的易坦靜比較甜,哄哄自己喝掉。 昨天邊小聲嗯嗯的哭,邊喝,還冒...
    夜心婉閱讀 231評(píng)論 0 0

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