diff --git a/.github/BRANCHING_STRATEGY.md b/.github/BRANCHING_STRATEGY.md new file mode 100644 index 0000000..242e045 --- /dev/null +++ b/.github/BRANCHING_STRATEGY.md @@ -0,0 +1,229 @@ +# 分支管理策略 + +## 概述 +本项目采用GitFlow工作流程,确保代码质量和发布稳定性。 + +## 分支类型 + +### 主要分支 + +#### main分支 +- **用途**: 生产就绪代码,每个commit对应一个发布版本 +- **保护级别**: 最高 +- **合并来源**: release分支、hotfix分支 +- **直接提交**: 禁止 +- **命名**: `main` + +#### develop分支 +- **用途**: 集成分支,包含下一个版本的最新开发代码 +- **保护级别**: 高 +- **合并来源**: feature分支、release分支、hotfix分支 +- **直接提交**: 禁止(除紧急情况) +- **命名**: `develop` + +### 支持分支 + +#### Feature分支 +- **用途**: 新功能开发 +- **生命周期**: 临时 +- **创建来源**: develop分支 +- **合并目标**: develop分支 +- **命名规范**: `feature/功能描述` +- **示例**: + - `feature/add-runtime-detection` + - `feature/improve-error-handling` + - `feature/support-podman` + +#### Release分支 +- **用途**: 发布准备,bug修复,版本号更新 +- **生命周期**: 临时 +- **创建来源**: develop分支 +- **合并目标**: main分支和develop分支 +- **命名规范**: `release/版本号` +- **示例**: + - `release/v1.1.0` + - `release/v1.2.0-beta.1` + +#### Hotfix分支 +- **用途**: 紧急修复生产环境问题 +- **生命周期**: 临时 +- **创建来源**: main分支 +- **合并目标**: main分支和develop分支 +- **命名规范**: `hotfix/问题描述` +- **示例**: + - `hotfix/critical-security-fix` + - `hotfix/memory-leak-fix` + +#### Bugfix分支 +- **用途**: 修复非紧急bug +- **生命周期**: 临时 +- **创建来源**: develop分支 +- **合并目标**: develop分支 +- **命名规范**: `bugfix/问题描述` +- **示例**: + - `bugfix/fix-config-parsing` + - `bugfix/handle-empty-image-list` + +## 工作流程 + +### 功能开发流程 +```bash +# 1. 从develop创建feature分支 +git checkout develop +git pull origin develop +git checkout -b feature/new-awesome-feature + +# 2. 开发功能 +# ... 编码、测试 ... + +# 3. 提交代码 +git add . +git commit -m "feat: add awesome new feature" + +# 4. 推送分支 +git push -u origin feature/new-awesome-feature + +# 5. 创建Pull Request到develop分支 +# 6. 代码审查通过后合并 +# 7. 删除feature分支 +``` + +### 发布流程 +```bash +# 1. 从develop创建release分支 +git checkout develop +git pull origin develop +git checkout -b release/v1.1.0 + +# 2. 更新版本号和文档 +# 编辑version文件、changelog等 + +# 3. 提交发布准备 +git add . +git commit -m "chore: prepare release v1.1.0" + +# 4. 推送release分支 +git push -u origin release/v1.1.0 + +# 5. 运行发布前测试 +# 6. 创建PR到main分支 +# 7. 合并到main并创建tag +# 8. 合并回develop分支 +``` + +### Hotfix流程 +```bash +# 1. 从main创建hotfix分支 +git checkout main +git pull origin main +git checkout -b hotfix/critical-bug-fix + +# 2. 修复问题 +# ... 编码、测试 ... + +# 3. 提交修复 +git add . +git commit -m "fix: resolve critical security issue" + +# 4. 推送分支 +git push -u origin hotfix/critical-bug-fix + +# 5. 创建PR到main分支 +# 6. 紧急审查和合并 +# 7. 创建hotfix版本tag +# 8. 合并回develop分支 +``` + +## Commit消息规范 + +### 格式 +``` +(): + + + +