Gitflow工作流定義了一個(gè)圍繞項(xiàng)目發(fā)布的嚴(yán)格分支模型攀操。雖然比功能分支工作流復(fù)雜幾分,但提供了用于一個(gè)健壯的用于管理大型項(xiàng)目的框架维蒙。
git flow全貌示意圖:
工作方式
Gitflow工作流仍然用中央倉(cāng)庫(kù)作為所有開發(fā)者的交互中心揩魂。和其它的工作流一樣熟吏,開發(fā)者在本地工作并push分支到要中央倉(cāng)庫(kù)中妓雾。
分支說(shuō)明
主分支
master:隨時(shí)可供在生產(chǎn)環(huán)境中部署的代碼
develop:保存當(dāng)前最新開發(fā)成果的分支(新功能經(jīng)過(guò)測(cè)試后的穩(wěn)定版本)
輔助分支
輔助分支包括:
feature分支
使用規(guī)范:
可以從develop分支發(fā)起feature分支
代碼必須合并回develop分支
feature分支的命名可以使用除master娶吞,develop嗜暴,release-*禽篱,hotfix-*之外的任何名稱
release
為發(fā)布新的產(chǎn)品版本而設(shè)計(jì),允許做小的缺陷修正缸剪、準(zhǔn)備發(fā)布版本所需的各項(xiàng)說(shuō)明信息(版本號(hào)策添、發(fā)布時(shí)間材部、編譯時(shí)間等等)。實(shí)際上是為了讓develop分支順利進(jìn)入下一個(gè)功能更新版本而做備份的分支:
在日期a前完成新功能版本v1.0.1研發(fā)和測(cè)試唯竹,發(fā)布日期b相對(duì)于a較晚乐导。此時(shí)有新的迭代功能版本v1.0.2開始研發(fā)。從develop分支fork出來(lái)用作v1.0.1版本預(yù)發(fā)布
使用規(guī)范:
可以從develop分支派生
必須合并回develop分支和master分支
分支命名慣例:release-*
hotfix
當(dāng)生產(chǎn)環(huán)境中的軟件遇到了異常情況或者發(fā)現(xiàn)了嚴(yán)重到必須立即修復(fù)的軟件缺陷的時(shí)候浸颓,就需要從master分支上指定的TAG版本派生hotfix分支來(lái)組織代碼的緊急修復(fù)工作物臂。
如圖所示
使用規(guī)范:
可以從master分支派生
必須合并回master分支和develop分支
分支命名慣例:hotfix-*