分支管理
大约 6 分钟约 1695 字
分支管理
分支说明
main
- 分支职责:稳定代码主干,用于备份、tag、release。
- 分支名称规则:
main - 说明:所有代码必须通过 Merge Request(MR) 合并,禁止直接 push。
警告
main分支 仅允许release分支发起合并MR,不允许其他分支发起 MR 到 main 分支
release
- 分支职责:上线/发布分支,用于功能验收、发布流程,是最终发布到
main前的候选分支。 - 创建方式:CI/CD 在 main 发生更新(如发布后)会自动基于 main 创建新 release 分支,始终保持分支名为
release。 - 分支名称规则:
release - 说明:所有
feature/hotfix必须通过 MR 先合入release,经验证后再合到main。
feature
- 分支职责:需求开发分支
- 创建方式:开发人员从
main创建 - 分支名称规则:
feature/xxx(如 feature/用户中心) - 说明:每新增需求/特性都应单独开分支,开发完成后合并到
release。
hotfix
- 分支职责:线上紧急修复
- 创建方式:从
main创建 - 分支名称规则:
hotfix/xxx(如hotfix/pay-error-20230501) - 说明:流程与
feature一致,针对紧急线上Bug,修复后优先合到release,经验证再合到main。
环境分支
为简化测试部同学和部署操作,固定环境分支名称,不随功能变换,需求内容环境切换,开发必须合并代码到相应环境分支,QA只需要在特定环境构建相对应分支即可,多环境部署时需指定:
qa:测试环境分支uat:演示环境分支
提示
qa/uat 环境分支只能合并代码,不能直接提交代码,必须通过 MR 合并。
分支CI图
常规开发流程
main分支:作为代码的权威来源,保持稳定- 自动创建
Release:每当 main 更新时,自动创建新的 Release 分支 - Feature 开发/hotfix 修复:开发人员从 main 创建 Feature/Hotfix 分支进行开发
- 环境分支同步:根据测试需要,通过 MR 将 feature/hotfix 代码合并到 qa(测试环境)或 uat(演示环境)分支
- 测试与演示:在对应环境分支进行功能测试和演示验证
- 合并到 Release:Feature 测试完成后合并到 Release
- Release 验证与发布: CI 动作:
- 版本号验证
- 生成 Changelog
- 合并到 main:手动创建 Release → main 的合并请求 CI 动作:
- 创建 Tag
- 创建 Release
- 循环继续:合并到 main 后,自动创建新的 Release 分支
提交规范
遵循约定式提交
| 匹配规则(前缀) | 分类 | 说明 |
|---|---|---|
^feat | 🚀 Features | 功能新增/优化 |
^fix | 🐛 Bug Fixes | 缺陷修复 |
^doc | 📚 Documentation | 文档相关 |
^perf | ⚡ Performance | 性能提升 |
^refactor | 🚜 Refactor | 代码重构 |
^style | 🎨 Styling | 代码风格调整 |
^test | 🧪 Testing | 测试相关 |
^chore、^ci | ⚙️ Miscellaneous Tasks | 杂项/构建/CI |
正文包含 security | 🛡️ Security | 安全相关(正文关键词) |
^revert | ◀️ Revert | 回滚提交 |
.* | 💼 Other | 其它未匹配类型 |
不限制任何工具使用,可以使用你喜欢的任何工具来生成提交信息,或者手动编写(正经人~谁自己写)。
常用工具:
- jetbrains系列:AI Git Commit
- vscode: dish-commit
- shell:commitizen、git-cliff
提示
可以找任何支持原生DeepSeek与遵守约定式提交的任何工具,生成提交信息。

分支图
展示一次需求开发到上线的分支图
- git 分支图无法呈现删除重建分支,故其实 next_release与release相同,并非不同分支。
- hotfix 分支未展示,流程与 feature 相同。
- qa/uat 环境分支根据测试需要从 release 同步代码。
CI配置
推荐方式:一站式集成
在目标项目的 .gitlab-ci.yml 中只需 include 本仓库编排好的 pipeline.yml:
include:
- project: 'aikero/devops/ci-templates'
ref: main
file: 'pipeline.yml'按需分阶段集成
如有特殊需求,可选择性 include 某些阶段,不必全量引用:
include:
- project: 'aikero/devops/ci-templates'
ref: main
file: 'common.yml'
- project: 'aikero/devops/ci-templates'
ref: main
file: 'validate.yml'
# ...注意: 引用时请确保分支(main/dev)与实际需求一致。
changelog生成示例
# Changelog
Traces of your evolution, detailed below.
## [0.0.9] - 2025-05-29
### 🚀 Features
- *(openapi)* 更新项目版本并更新 OpenApi 注解使用
- *(api)* 添加接口端点管理功能,接收 blade 端点上报
- *(api-log)* 接口日志增加记录日期字段并调整相关功能
- *(api)* 添加接口日志忽略认证地址功能
- *(openapi)* OpenApi 相关代码包路径调整
- *(interface-log)* 优化接口日志记录和查询功能
- *(log)* 接口日志查询维度调整为汇总和按天查看
- *(sys-admin-service)* 接口日志统计增加分组数量字段
- *(interface-log)* 增加 clientCode
- *(endpoint)* 接口端点支持注解查询功能
- *(api-log)* 接口日志统计功能
- *(admin)* 添加用户信息缓存服务
- *(cache)* 优化用户信息缓存逻辑
- *(sys-admin-service)* 为接口端点分页查询添加 ID 排序,避免 jimmer 反排序导致分页数据错误
### 🐛 Bug Fixes
- *(log)* 修复接口日志 clientCode 显示错误
### 💼 Other
- *(gradle)* 优化 Gradle 构建配置
- 更新框架版本号
- 更新项目版本号至 0.0.8
- 更新项目版本号至 0.0.9-SNAPSHOT
- 更新版本号并移除快照版本
### 🚜 Refactor
- *(admin)* 移除 InterfaceEndpointController 中的 OpenApi 注解
### ⚡ Performance
- *(dependency)* 优化依赖使用情况查询准确度