Gitflow 工作流规则
主分支
main(或master)
-
包含生产就绪代码
-
永远不要直接提交到main分支
-
只接受来自以下分支的合并:
-
hotfix/* 分支
-
release/* 分支
-
每次合并后必须使用版本号标记
develop
-
主开发分支
-
包含最新交付的开发变更
-
功能分支的源分支
-
永远不要直接提交到develop分支
支持分支
feature/*
-
从develop分支创建
-
合并回:develop
-
命名约定:feature/[issue-id]-描述性名称
-
示例:feature/123-user-authentication
-
创建PR前必须与develop分支保持同步
-
合并后删除
release/*
-
从develop分支创建
-
合并回:main 和 develop
-
命名约定:release/vX.Y.Z
-
示例:release/v1.2.0
-
仅进行bug修复、文档编写及与发布相关的任务
-
不添加新功能
-
合并后删除
hotfix/*
-
从main分支创建
-
合并回:main 和 develop
-
命名约定:hotfix/vX.Y.Z
-
示例:hotfix/v1.2.1
-
仅用于紧急生产环境修复
-
合并后删除
提交信息
-
格式:type(scope): description
-
类型:
-
feat: 新功能
-
fix: Bug修复
-
docs: 文档变更
-
style: 格式调整、缺失分号等
-
refactor: 代码重构
-
test: 添加测试
-
chore: 维护任务
版本控制
语义化版本
-
MAJOR版本用于不兼容的API变更
-
MINOR版本用于向后兼容的功能性变更
-
PATCH版本用于向后兼容的bug修复
Pull Request规则
-
所有变更必须通过Pull Request进行
-
所需批准:至少1个
-
CI检查必须通过
-
不允许直接提交到受保护分支(main, develop)
-
合并前分支必须保持最新
-
合并后删除分支
分支保护规则
main和develop
-
要求Pull Request审核
-
要求状态检查通过
-
要求分支保持最新
-
限制规则包括管理员
-
禁止强制推送
-
禁止删除
发布流程
-
从develop创建release分支
-
更新版本号
-
修复任何与发布相关的问题
-
创建PR到main
-
合并到main后:
-
标记发布
-
合并回develop
-
删除release分支
热修复流程
-
从main创建hotfix分支
-
修复问题
-
更新patch版本号
-
创建PR到main
-
合并到main后:
-
标记发布
-
合并回develop
-
删除hotfix分支