從技術上將,這意味著,Alice創(chuàng)建了一個Git的遠程節(jié)點,而對于Bob,該節(jié)點指向了Bob的版本庫,反之亦然。
主分支
在核心部分,研發(fā)模型很大程度上靠其他現(xiàn)有模型支撐的。中心庫有2個可一直延續(xù)的分支:
master分支
develop分支
每個Git用戶都要熟悉原始的master分支。與master分支并行的另一個分支,我們稱之為develop分支。
我們把原始庫/master庫認作為主分支,HEAD的源代碼存在于此版本中,并且隨時都是一個預備生產(chǎn)狀態(tài)。
輔助性分支
我們的開發(fā)模型使用了各種輔助性分支,這些分支與關鍵分支(master和develop)一起,用來支持團隊成員們并行開發(fā),使得易于追蹤功能,協(xié)助生產(chǎn)發(fā)布環(huán)境準備,以及快速修復實時在線問題。與關鍵分支不同,這些分支總是有一個有限的生命期,因為他們終會被移除。
我們用到的分支類型包括:
功能分支
發(fā)布分支
熱修復分支
每一種分支有一個特定目的,并且受限于嚴格到規(guī)則,比如:可以用哪些分支作為源分支,哪些分支能作為合并目標。我們馬上將進行演練。
從技術角度來看,這些分支絕不是特殊分支。分支的類型基于我們使用的方法來進行分類。它們理所當然是普通的Git分支。
功能分支
可能是develop分支的分支版本,終必須合并到develop分支中。
分支命名規(guī)則:除了master、develop、release-*、orhotfix-*之外,其他命名均可。
功能分支(有時被稱為topic分支)通常為即將發(fā)布或者未來發(fā)布版開發(fā)新的功能。當新功能開始研發(fā),包含該功能的發(fā)布版本在這個還是無法確定發(fā)布時間的。功能版本的實質是只要這個功能處于開發(fā)狀態(tài)它會存在,但是終會或合并到develop分支(確定將新功能添加到不久的發(fā)布版中)或取消(譬如一次令人失望的測試)。