1.GitFlow的常用分支
master 主分支
- 主分支,產品的功能全部實現(xiàn)后,在master分支對外發(fā)布。
- 該分支為只讀唯一分支,只能從其他分支進行合并,不能再次分支上進行修改。
- 所有在master分支上的推送都應改打標簽做記錄。
develop 主開發(fā)分支
- 主開發(fā)分支,基于master分支克隆
- 包含所有要發(fā)布到下一個release的代碼
- 該分支為只讀唯一分支,只能從其他分支合并
- feature功能分支完成,合并到develop分支
- develop拉取release分支,提測
- release/hotfix分支上線完畢,合并到develop并推送
feature 功能開發(fā)分支
- 功能開發(fā)分支,基于develop分支克隆,主要用于新需求新功能的開發(fā)
- 功能開發(fā)完畢后合并到develop分支(未正式上線前不能推送到遠程中央倉庫!)
- feature分支可以同時存在多個,用于團隊中多個功能同時開發(fā),屬于臨時分支,功能完成后可刪除該分支
release 測試分支
- 測試分支,基于feature分支合并到develop分支后,從develop分支克隆
- 主要用于提交給測試人員進行功能測試,測試過程中發(fā)現(xiàn)的BUG在本分支進行修復,修復完成后上線合并到develop/master分支
- 屬于臨時分支,功能上線后可選擇性刪除
hotfix 補丁分支
- 補丁分支,基于master分支克隆,主要用于對線上的版本進行BUG修復
- 修復完畢后合并到develop/master分支并推送
- 屬于臨時分支,補丁修復上線后可選擇性刪除
- 所有hotfix分支的修改都會進入到下一個release
主要工作流程
1.初始化項目為gitflow,默認創(chuàng)建master分支,然后從master分支上拉取第一個develop分支作為開發(fā)主分支。
2.從develop分支上拉取feature功能開發(fā)分支進行編碼開發(fā),多個開發(fā)人員拉取多個feature同時進行并行開發(fā),互不影響。
3.feature分支完成后,合并到develop分支(不推送,由于feature分支的功能完成還沒有進行提測,推送后會影響其他功能分支的開發(fā)),合并feature分支到develop分支,可以選擇刪除當前feature分支。也可以不刪除,但是當前feature分支就不可進行更改了,必須從release分支繼續(xù)編碼修改。
4.從develop分支進行提測,提測過程中在release分支上修改BUG。
5.release分支上線后,合并release分支到develop/master分支并推送合并之后,可以選擇刪除當前release分支,若果不刪除,則當前release分支不可修改。線上有問題也必須從master分支拉取hotfix分支進行修改
6.上線之后如果發(fā)現(xiàn)BUG,則從master分支上拉取hotfix分支進行BUG修改。
7.hotfix分支代碼通過測試上線后,合并hotfix分支到develop/master分支并推送,合并后,可以選擇刪除當前hotfix分支,若果不刪除,則當前hotfix不可修改,若果補丁未被修復,需要從master拉取新的hotfix分支繼續(xù)修改。
8.當進行一個feature功能開發(fā)時,若develop分支發(fā)生變動,例如其他開發(fā)人員完成功能并上線,則需要從將對方完成的功能合并到自己的分支上,即合并develop主開發(fā)分支到當前feature功能開發(fā)分支上。
9.當進行一個release測試分支時,若develop分支發(fā)生變動,例如其他開發(fā)人員完成功能并上線,則需要將完成的功能合并到自己的release分支上(注意:如果在不合并develop分支的情況下,將當前release測試分支發(fā)布到線上,可能會發(fā)生代碼丟失的情況)。
轉自:https://blog.csdn.net/xingbaozhen1210/article/details/81386269