Gitflow + 分支规范
Gitflow + 分支规范 是基于 Gitflow 分支规范 增加分支以及合并方向的自定义分支规范!通过该规范,我们可以实现同一套程序代码在不同项目中的分支。
支持 master、develop、feature/、 release/、hotfix/* 分支
增加 test、-master、-test、*-dev 分支
分支类型
| 分支类型 | 分支名匹配规则 | 描述 | 环境 |
|---|---|---|---|
| 主干分支 | [主干分支] | 与仓库设置 > 分支设置中的默认分支保持一致。 | 无 |
| 开发分支 | develop | 平时开发用的主分支,永远是功能最全最新 | DEV |
| 测试分支 | test | 平时测试用的主分支,永远是已提测的功能分支 | TEST |
| 功能分支 | feature/* | 一般一个事项卡对应一个功能分支 | DEV |
| 发布分支 | release/* | 一般一次新版本的发布对应一个发布分支 | PRE、PROD |
| 热修复分支 | hotfix/* | 从主干分支拉出,用于线上版本的 Bug 修复 | DEV |
| 项目主干分支 | *-master | 不同项目的主干分支 | 无 |
| 项目测试分支 | *-test | 不同项目的测试分支 | TEST |
| 项目开发分支 | *-dev | 不同项目的开发分支 | DEV |
主干分支
master、*-master 为主干分支,不适用于任何环境,主要用于保持最新代码版本,一般由 release/* 或 hotfix 分支合并,任何情况下不允许直接在 master 分支上修改代码。
开发分支
develop、*-dev 为需求开发合并分支,用于部署到开发环境(DEV),用于合并多个开发人员的分支,将包含最新的代码,但是也是未经测试的版本,可能存在的bug会比较多。
测试分支
test、*-test 为测试分支,用于部署到测试环境(TEST),始终保持最新已提测以及 bug 修复后的代码,一定是满足测试的代码才能往上面合并或提交。
功能分支
feature/* 为需求开发分支,用于需求的版本迭代,一旦该需求上线,便将其删除。
发布分支
release/* 为发布分支,用于部署到预发环境(PRE)和正式环境(PROD),始终保持与 主干分支(master、*-master) 分支一致,一般由 功能分支(feature/*) 或 热修复分支(hotfix/*) 分支合并,不允许在发布分支上直接修改代码。
如果在
发布分支(release/*)分支测试出问题,需要回归验证测试分支(test、*-test)分支看否存在此问题。
热修复分支
hotfix/* 为紧急修复分支,命名规则为 hotfix 开头。
当线上出现紧急问题需要马上修复时,需要基于
release/*或master分支创建hotfix分支,修复完成后,再合并到发布分支(release/*)、主干分支(master、*-master)、开发分支(develop、*-dev),一旦修复上线,便将其删除。
合并方向
规范仓库分支间的合并方向,只允许创建列表中规定方向的合并请求,列表为空则不会对仓库中的合并请求方向做限制。
| 源分支 | 目标分支 | 图示 |
|---|---|---|
| 功能分支 | 开发分支 | feature/* -> develop |
| 功能分支 | 测试分支 | feature/* -> test |
| 功能分支 | 发布分支 | feature/* -> release/* |
| 功能分支 | 项目开发分支 | feature/* -> *-dev |
| 功能分支 | 项目测试分支 | feature/* -> *-test |
| 热修复分支 | 开发分支 | hotfix/* -> develop |
| 热修复分支 | 测试分支 | hotfix/* -> test |
| 热修复分支 | 发布分支 | hotfix/* -> release/* |
| 热修复分支 | 主干分支 | hotfix/* -> [主干分支] |
| 热修复分支 | 项目主干分支 | hotfix/* -> *-master |
| 热修复分支 | 项目测试分支 | hotfix/* -> *-test |
| 热修复分支 | 项目开发分支 | hotfix/* -> *-dev |
| 发布分支 | 主干分支 | release/* -> [主干分支] |
| 发布分支 | 项目主干分支 | release/* -> *-master |
最后编辑:Jeebiz 更新时间:2025-06-30 16:08