config(git): 引入develop长期开发分支模型和git工作流自动化
This commit is contained in:
+36
-60
@@ -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 修改同一文件时需顺序执行
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user