幾乎每一種版本控制系統(tǒng)都以某種形式支持分支。使用分支意味著可以從開發(fā)主線上分離開來,然后在不影響主線的同時繼續(xù)工作。在很多版本控制系統(tǒng)中,這是個昂貴的過程,常常需要創(chuàng)建一個源代碼目錄的完整副本,對大型項目來說會花費很長時間
有人把Git的分支模型稱為“必殺技特性”,而正是因為它,將Git從版本控制系統(tǒng)家族里區(qū)分出來。Git有何特別之處呢?Git的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,并且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統(tǒng)不同,Git鼓勵在工作流程中頻繁使用分支與合并,哪怕一天之內進行許多次都沒有關系。理解分支的概念并熟練運用后,才會意識到為什么Git是一個如此強大而獨特的工具,并從此真正改變開發(fā)方式。本文將詳細介紹Git分支
定義
為了理解Git分支的實現(xiàn)方式,我們需要回顧一下Git是如何儲存數(shù)據(jù)的。Git保存的不是文件差異或者變化量,而只是一系列文件快照
在Git中提交時,會保存一個提交(commit)對象,該對象包含一個指向暫存內容快照的指針,包含本次提交的作者等相關附屬信息,包含零個或多個指向該提交對象的父對象指針:首次提交是沒有直接祖先的,普通提交有一個祖先,由兩個或多個分支合并產生的提交則有多個祖先