GitFlow是什么?
GitFlow工作流程圍繞項目發(fā)布定義了嚴(yán)格的分支模型。盡管它比Feature Branch Workflow更復(fù)雜一些,但它也為管理更大規(guī)模的項目提供了堅實的框架。
與Feature Branch Workflow相比,GitFlow流程并沒有增加任何新的概念或命令。其特色在于,它為不同的分支分配了非常明確的角色,并且定義了使用場景和用法。除了用于功能開發(fā)的分支,它還使用獨立的分支進行發(fā)布前的準(zhǔn)備、記錄以及后期維護。
流程仍然使用一個中央代碼倉庫,它是所有開發(fā)者的信息交流中心。跟其他的工作流程一樣,開發(fā)者在本地完成開發(fā),然后再將分支代碼推送到中央倉庫。唯一不同的是項目中分支的結(jié)構(gòu)。
GitFlow常用分支
master
1.主分支 , 產(chǎn)品的功能全部實現(xiàn)后 , 最終在master分支對外發(fā)布。
2.該分支為只讀唯一分支 , 只能從其他分支(release/hotfix)合并 , 不能在此分支修改。
3.另外所有在master分支的推送應(yīng)該打標(biāo)簽做記錄,方便追溯。例如release合并到master , 或hotfix合并到master。
develop
1.主開發(fā)分支 , 基于master分支克隆。
2.包含所有要發(fā)布到下一個release的代碼。
3.該分支為只讀唯一分支 , 只能從其他分支合并。
4.feature功能分支完成 , 合并到develop(不推送)。
5.develop拉取release分支 , 提測。
6.release/hotfix 分支上線完畢 , 合并到develop并推送。
feature
1.功能開發(fā)分支 , 基于develop分支克隆 , 主要用于新需求新功能的開發(fā)。
2.功能開發(fā)完畢后合到develop分支(未正式上線之前不推送到遠(yuǎn)程中央倉庫)。
3.feature分支可同時存在多個 , 用于團隊中多個功能同時開發(fā) , 屬于臨時分支 , 功能完成后可選刪除。
release
1.測試分支 , 基于feature分支合并到develop之后 , 從develop分支克隆。
2.主要用于提交給測試人員進行功能測試 , 測試過程中發(fā)現(xiàn)的BUG在本分支進行修復(fù) , 修復(fù)完成上線后合并到develop/master分支并推送(完成功能) , 打Tag。
3.屬于臨時分支 , 功能上線后可選刪除。
hotfix
1.補丁分支 , 基于master分支克隆 , 主要用于對線上的版本進行BUG修復(fù)。
2.修復(fù)完畢后合并到develop/master分支并推送 , 打Tag。
3.屬于臨時分支 , 補丁修復(fù)上線后可選刪除。
4.所有hotfix分支的修改會進入到下一個release。