【每日一題NO.76】說(shuō)說(shuō)你對(duì)git flow的


git flow
git flow 是基于 git 之上的一種軟件開(kāi)發(fā)迭代模型,是使用 git 進(jìn)行源代碼管理的一套行為規(guī)范。重點(diǎn)解決的是由于源代碼在開(kāi)發(fā)過(guò)程中的各種沖突導(dǎo)致開(kāi)發(fā)活動(dòng)混亂的問(wèn)題,提高開(kāi)發(fā)效率。
git flow 中的分支
git flow 模型中定義了主分支和輔助分支兩類分支,
其中主分支用于組織與軟件開(kāi)發(fā)、部署相關(guān)的活動(dòng);
輔助分支組織為了解決特定的問(wèn)題而進(jìn)行的各種開(kāi)發(fā)活動(dòng)。
主分支
master 分支 develop 分支
輔助分支
我們的開(kāi)發(fā)模式旁邊的主要分支機(jī)構(gòu)掌握和發(fā)展,使用各種支持分支機(jī)構(gòu),以幫助團(tuán)隊(duì)成員之間的平行發(fā)展,便于追蹤的功能,準(zhǔn)備生產(chǎn)版本,并協(xié)助快速修復(fù)現(xiàn)場(chǎng)生產(chǎn)問(wèn)題。與主分支不同,這些分支總是有有限的生命時(shí)間,因?yàn)樗鼈冏罱K將被移除。
feature 分支 release 分支 hotfix 分支
feature 分支
從develop分支檢出 必須合并回develop分支 命名規(guī)范:除了 master、develop、release、hotfix
當(dāng)開(kāi)始一個(gè)新特征的開(kāi)發(fā)時(shí),從 develop 檢出 feature 分支。feature 分支的本質(zhì)是,只要特性處于開(kāi)發(fā)階段,它就會(huì)存在,將來(lái)會(huì)被合并 develop 分支(為了即將發(fā)布的版本而明確地添加新特性),或者丟棄掉(如果是不好的結(jié)果)
feature 分支只存在于開(kāi)發(fā)者本地,不能被提交到遠(yuǎn)程庫(kù)。
release 分支
從develop分支檢出 必須合并回develop分支和master分支 命名規(guī)范: release-*
release 分支是為發(fā)布新產(chǎn)品版本而設(shè)計(jì)的。在這個(gè)分支上的代碼允許做小的缺陷修正、準(zhǔn)備發(fā)布版本所需的各項(xiàng)說(shuō)明信息(版本號(hào)、編譯時(shí)間…)。通過(guò)在 release 分支上進(jìn)行這些工作可以讓 develop 分支空閑出來(lái)接受新的 feature 分支上的代碼提交,進(jìn)入新的軟件開(kāi)發(fā)迭代周期。
當(dāng) develop 分支上的代碼已經(jīng)包含了所有即將發(fā)布的版本中所計(jì)劃包含的軟件功能,并且已經(jīng)通過(guò)所有測(cè)試時(shí),我們就可以考慮準(zhǔn)備創(chuàng)建 release 分支了。而所有在當(dāng)前即將發(fā)布的版本之外的業(yè)務(wù)需求一定要確保不能混到 release 分支之內(nèi)--避免由此引入一些不可控的系統(tǒng)缺陷。
hotfix 分支
從master檢出 合并develop和master分支 命名: hotfix-*
hotfix 分支非常像 release 分支,因?yàn)樗鼈円馕吨磳l(fā)布一個(gè)新的版本,盡管是未計(jì)劃的。當(dāng)線上出現(xiàn)一個(gè)嚴(yán)重的 bug,需要立即修復(fù)的時(shí)候,就需要從 master 分支上指定的 tag 版本派生 hotfix 分支來(lái)進(jìn)行緊急修復(fù)工作。
這樣做的顯而易見(jiàn)的好處是不會(huì)打斷正在進(jìn)行中的 develop 分支的開(kāi)發(fā)工作,能夠讓團(tuán)隊(duì)中負(fù)責(zé)新功能開(kāi)發(fā)的人與負(fù)責(zé)代碼緊急修復(fù)的人并行開(kāi)展工作。
所有《每日一題》的 知識(shí)大綱索引腦圖 整理在此:https://www.yuque.com/dfe_evernote/interview/everyday
你也可以點(diǎn)擊文末的 “閱讀原文” 快速跳轉(zhuǎn)

