幾乎每一種版本控制系統(tǒng)都以某種形式支持分支。使用分支意味著可以從開發(fā)主線上分離開來,然后在不影響主線的同時繼續(xù)工作。在很多版本控制系統(tǒng)中,這是個昂貴的過程,常常需要創(chuàng)建一個源代碼目錄的完整副本,對大型項(xiàng)目來說會花費(fèi)很長時間
有人把Git的分支模型稱為“必殺技特性”,而正是因?yàn)樗瑢it從版本控制系統(tǒng)家族里區(qū)分出來。Git有何特別之處呢?Git的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,并且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統(tǒng)不同,Git鼓勵在工作流程中頻繁使用分支與合并,哪怕一天之內(nèi)進(jìn)行許多次都沒有關(guān)系。理解分支的概念并熟練運(yùn)用后,才會意識到為什么Git是一個如此強(qiáng)大而獨(dú)特的工具,并從此真正改變開發(fā)方式。本文將詳細(xì)介紹Git分支
定義
為了理解Git分支的實(shí)現(xiàn)方式,我們需要回顧一下Git是如何儲存數(shù)據(jù)的。Git保存的不是文件差異或者變化量,而只是一系列文件快照
在Git中提交時,會保存一個提交(commit)對象,該對象包含一個指向暫存內(nèi)容快照的指針,包含本次提交的作者等相關(guān)附屬信息,包含零個或多個指向該提交對象的父對象指針:首次提交是沒有直接祖先的,普通提交有一個祖先,由兩個或多個分支合并產(chǎn)生的提交則有多個祖先
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26