config(git): 引入develop长期开发分支模型和git工作流自动化

This commit is contained in:
2026-06-11 15:24:38 +08:00
parent 3b851a195e
commit ac7a3abda9
12 changed files with 781 additions and 72 deletions
+36 -60
View File
@@ -7,81 +7,57 @@
## 一、分支策略
采用**轻量级 Feature Branch 模型**,避免企业级复杂流程,保持 `main` 分支随时可玩。
采用 **develop 长期开发分支模型**,适合单人开发 + 多 AI Agent 协作场景。所有 agent 在 `develop` 上工作,迭代结束时通过 PR 合并回 `main`。
### 1.1 分支总览
```
main ──────────────────────────────────────── 稳定主线
│
├── feature/player-movement ───→ 合并后删除
├── feature/inventory-system ──→ 合并后删除
├── fix/camera-clipping ───────→ 合并后删除
├── prototype/procedural-gen ──→ 实验完即删
└── release/v0.1 ──────────────→ 永久保留
main ──────────── 永远可玩可编译,受保护,禁止直接推送
│
│ PR (Gitea) ← 里程碑/迭代结束时,PM 发起
│
└── develop ──── 长期分支,所有 agent 的日常工作分支
│
├── 程序1 提交代码
├── 策划 提交文档
├── 程序2 提交代码
└── 迭代就绪 → PR develop→main
```
### 1.2 分支类型
| 分支 | 前缀 | 用途 | 合并目标 | 生命周期 |
|---|---|---|---|---|
| 主线 | `main` | 稳定可玩版本,每次提交都能编译运行 | — | 永久 |
| 功能 | `feature/` | 新系统、新功能开发 | `main` | 完成后删除 |
| 修复 | `fix/` | Bug 修复 | `main` | 完成后删除 |
| 原型 | `prototype/` | 技术验证、玩法实验 | 合并或丢弃 | 实验完即删 |
| 发布 | `release/` | 版本发布标记,只从 `main` 切出 | — | 永久保留 |
| 分支 | 用途 | 生命周期 |
|---|---|---|
| `main` | 稳定可玩版本,受保护 | 永久 |
| `develop` | 日常开发,所有 agent 共用 | 永久 |
| `prototype/` | 技术验证、玩法实验 | 实验完即删 |
| `release/` | 版本发布标记,只从 main 切出 | 永久保留 |
### 1.3 命名规范
格式:`<类型>/<简短描述>`,全小写,用连字符分隔单词。
### 1.3 工作流程
```
# ✅ 好的命名
feature/player-movement
feature/inventory-system
feature/dialogue-tree
fix/camera-clipping-through-walls
fix/enemy-ai-stuck-on-navmesh
prototype/procedural-dungeon
release/v0.1
1. 开始工作(agent 自动执行)
bash .claude/scripts/git-workflow.sh ready
# ❌ 不好的命名
my-new-feature
fix-bug
test
feature/AddPlayerMovement
2. 开发并提交
bash .claude/scripts/git-workflow.sh commit <type> <scope> "描述"
3. 推送到远程
bash .claude/scripts/git-workflow.sh push
4. 迭代完成,PM 创建 PR
bash .claude/scripts/git-workflow.sh release "迭代名称"
5. 用户在 Gitea 合并后同步
bash .claude/scripts/git-workflow.sh post-release
```
### 1.4 工作流程
### 1.4 核心原则
```
1. 开始新功能
git checkout main
git pull
git checkout -b feature/xxx
2. 开发过程中(随时提交)
git add .
git commit -m "wip(xxx): 进度描述"
3. 功能完成,测试通过
git checkout main
git merge feature/xxx
git branch -d feature/xxx # 删除已合并分支
4. 到达里程碑
git checkout main
git tag -a v0.1.0 -m "第一个可玩原型"
git checkout -b release/v0.1
git push origin release/v0.1
```
### 1.5 核心原则
- **`main` 永远可玩**:坏了就留在 feature 分支继续改,不要合并进 main
- **功能分支粒度**:一个分支做一件事,不要在一个分支里同时做多个系统
- **原型不怕乱**:`prototype/` 分支随便写,验证完再决定合并还是丢弃
- **定期清理**:已合并的 feature/fix 分支及时删除,避免分支堆积
- **`main` 永远可玩**:通过 develop → main PR 合并,不直接推送
- **develop 是工作台**:所有 agent 在 develop 上并行工作
- **不同文件不冲突**:各 agent 修改不同文件,可真正并行
- **同一文件需协调**:两个 agent 修改同一文件时需顺序执行
---