
圖片.png
主分支:
- 命名: master-xxx
- 意義: 是發(fā)布到線上的代碼版本,在主分支上會打上對應的版本號標簽
- 維護者: 項目的主程、軟件組長、專門維護線上版本人員
- 數量: 理論上只有一個,如果該項目面向多個渠道獨立發(fā)布的,那就創(chuàng)建多個master
develop分支
- 命名: develop-xxx
- 意義: 團隊開發(fā)合并和fork主要以此分支為準,開發(fā)過程中需要經常對develop進行合并
- 維護者: 如果有代碼評審機制,那么在發(fā)送develop合并feature分支時,應該做代碼評審。 維護者是整個開發(fā)團隊。
- 數量: 與master分支對應
feature分支
- 命名: ft-xxx
- 意義: 團隊成員開發(fā)具體需求時,需要從develop fork出一個特性分支,專門用來開發(fā)對應功能需求。 如果功能完成,測試人員可以針對該分支進行單獨的功能測試,在禪道的任務中需要添加 的開發(fā)分支 就是這個特性分支
- 維護者: 當前開發(fā)此功能的研發(fā)人員
realease分支:
- 命名: release-xxx-vxxx
- 意義: 當一個迭代需要完成的功能已經合并到develop, 確定要對這些功能進行發(fā)布,從develop中fork出realease分支,中間xxx與master和develop的后綴對應,后面是版本號。
- 維護者:研發(fā)團隊
- 使用: 內網測試是建立在此分支上的,release分支創(chuàng)建完成后不再接受功能級別的合并,僅支持測試出現的bug修復的合并。當測試完全通過后,與master合并,建立版本tag,準備發(fā)布。
- 合并規(guī)則: fix分支、
feature分支、develop分支
hotfix分支:
- 命名:fix-{bug編號}
- 意義:用于對線上的bug的修復或測試版本的bug修復
- 維護:對應開發(fā)人員
- 使用:bug的修復可以在feature分支中進行,如果是迭代周期內的bug推薦使用feature修復,并與develp和對應的release分支合并。如果是線上的bug,那就從master分支fork出release分支和fix分支,使用fix進行修復,測試通過后,fix分支可以在之后的時間刪除
例子
假設haier項目中增加一個添加菜單功能,版本號為0.1,禪道bug編號為4192.
1、主分支:
- 命名為master-haier:
- 有bug:見5.1
- 無bug:發(fā)布線上。
2、 develop分支:
- 從master-haier中繼承一個分支命名為:develop-haier
- 每次master-haier有更新,都合并到:develop-haier分支。
3、 feature分支:
- 從develop-haier中fork一個分支命名:ft-addMenu。
- 添加菜單功能開發(fā)完成后,測試人員對ft-addMenu分支進行測試。
- 有bug:見5.3
- 無bug:合并到develop-haier,刪除ft-addMenu分支。
4、 realease分支:
- 在ft-addMenu等功能合并到develop-haier后,從develop-haier中fork一個分支,命名為:realease-haier-v0.1。
- 內網測試在此分支上進行。
- 有bug:見5.2
- 無bug:合并到master-haier上,刪除realease-haier-v0.1分支。
5、 hotfix分支:
- 命名規(guī)則:fix-4192。
5.1 線上bug:
- master-haier中fork出realease-haier-v0.1和fix-4192分支,fix-4192修復后合并至realease-haier-v0.1,進行內網測試。內網測試通過后,realease-haier-v0.1合并到master-haier上,發(fā)布線上。
5.2 內網測試bug:
- 建立fix-4192分支,修復后合并到realease-haier-v0.1。
5.3 feature bug:
- 在ft-haier上建立分支fix-4192分支,修復后合并至ft-haier分支。
開發(fā)記錄
項目代碼中建立gitbranch.md 文件,用來記錄每次人員開發(fā)對分支的使用,特別的feature分支,需要經常更新
## master分支:
- master-main : 云平臺軟件的主分支
## develop分支:
- develop: 云平臺軟件的主開發(fā)分支
## feature分支:
- ft-wall-rotateinfo: xxx 墻體旋轉信息與ruler沖突