個人總結(jié)
熟悉概念的直接看總覽圖即可:
master——相當(dāng)于生產(chǎn)庫
develop——開發(fā)庫牡昆,
release——用于開發(fā)到生產(chǎn)之前的調(diào)試工作
feature——多人協(xié)同開發(fā)develop,加快develop庫的開發(fā)速度
hotfix——bug緊急修復(fù)
總覽圖
它主要體現(xiàn)了Git對我們源代碼版本的管理涂臣。
一般情況:
● master和develop并行恰聘。
● master上始終是最穩(wěn)定的代碼,develop是正在開發(fā)的代碼。
● feature則是某個開發(fā)為了自己的功能拉的分支杏瞻。
不一般情況:
● develop正在開發(fā),如果你上線突然被拒絕了衙荐,這時候就要從master上開一個熱分支捞挥,或者release分支也行,改好之后在分別合并到其他分支忧吟。但砌函,本人感覺release通常意味著終止。別在從release上拉分支了溜族。
簡單和重復(fù)的特性帶來的結(jié)果是:分支與合并不再是什么可以害怕的東西讹俊。分支/合并被認(rèn)為對于版本管理工具比其他功能更重要。
主分支
在核心部分煌抒,研發(fā)模型很大程度上靠其他現(xiàn)有模型支撐的仍劈。中心庫有2個可一直延續(xù)的分支:
● master分支
● develop分支
每個Git用戶都要熟悉原始的master分支。與master分支并行的另一個分支寡壮,我們稱之為develop分支贩疙。
我們把原始庫/master庫認(rèn)作為主分支,HEAD的源代碼存在于此版本中诬像,并且隨時都是一個預(yù)備生產(chǎn)狀態(tài)屋群。
當(dāng)develop分支的源碼到達(dá)了一個穩(wěn)定狀態(tài)待發(fā)布,變更都合并到了master坏挠,這就是新產(chǎn)品的定義芍躏。
輔助性分支
我們的開發(fā)模型使用了各種輔助性分支,這些分支與關(guān)鍵分支(master和develop)一起降狠,用來支持團(tuán)隊成員們并行開發(fā)对竣,使得易于追蹤功能,協(xié)助生產(chǎn)發(fā)布環(huán)境準(zhǔn)備榜配,以及快速修復(fù)實時在線問題否纬。與關(guān)鍵分支不同,這些分支總是有一個有限的生命期蛋褥,因為他們最終會被移除临燃。
我們用到的分支類型包括:
● 功能分支
● 發(fā)布分支
● 熱修復(fù)分支
每一種分支有一個特定目的,并且受限于嚴(yán)格到規(guī)則,比如:可以用哪些分支作為源分支膜廊,哪些分支能作為合并目標(biāo)乏沸。我們馬上將進(jìn)行演練。
從技術(shù)角度來看爪瓜,這些分支絕不是特殊分支蹬跃。分支的類型基于我們使用的方法來進(jìn)行分類。它們理所當(dāng)然是普通的Git分支铆铆。
功能分支
可能是develop分支的分支版本蝶缀,最終必須合并到develop分支中。
分支命名規(guī)則:除了master薄货、develop翁都、release-*、orhotfix-*之外谅猾,其他命名均可荐吵。
創(chuàng)建一個release分支
Release分支是從develop分支創(chuàng)建的。例如赊瞬,當(dāng)前產(chǎn)品的發(fā)行版本號為1.1.5先煎,同事我們有一個大的版本即將發(fā)行。develop 分支已經(jīng)為下次發(fā)行做好了準(zhǔn)備巧涧,我們得決定下一個版本是1.2(而不是1.1.6或者2.0)薯蝎。所以我們將Release分支分離出來,給一個能夠反映新版本號的分支名谤绳。
熱修復(fù)分支
熱修復(fù)分支與發(fā)布分支很相似占锯,他們都為新的生成環(huán)境發(fā)布做準(zhǔn)備,盡管這是未經(jīng)計劃的缩筛。他們來自生產(chǎn)環(huán)境的處于異常狀態(tài)壓力消略。當(dāng)生成環(huán)境驗證缺陷必須馬上修復(fù)是,熱修復(fù)分支可以基于master分支上對應(yīng)與線上版本的tag創(chuàng)建瞎抛。
其本質(zhì)是團(tuán)隊成員(在develop分支上)的工作可以繼續(xù)艺演,而另一個人準(zhǔn)備生產(chǎn)環(huán)境的快速修復(fù)。
創(chuàng)建修補bug分支
hotfix branch(修補bug分支)是從Master分支上面分出來的桐臊。例如胎撤,1.2版本是當(dāng)前生產(chǎn)環(huán)境的版本并且有bug。但是開發(fā)分支(develop)變化還不穩(wěn)定断凶。我們需要分出來一個修補bug分支(hotfix branch)來解決這種情況伤提。
【1】https://blog.csdn.net/hj7jay/article/details/84527062? ??Git分支模型(master/hotfix/develop/feature/release)