config(git): 引入develop长期开发分支模型和git工作流自动化
This commit is contained in:
@@ -6,23 +6,30 @@
|
||||
|
||||
## 分支策略
|
||||
|
||||
**轻量 Feature Branch** — 单人开发,`main` 永远可玩可编译。
|
||||
**develop 长期开发分支模型** — 单人开发 + 多 Agent 协作。
|
||||
|
||||
```
|
||||
main ─────────── 永远可玩可编译,受保护,禁止直接推送
|
||||
│
|
||||
│ PR (Gitea) ← 里程碑/迭代结束时,PM 发起
|
||||
│
|
||||
└── develop ──── 长期分支,所有 agent 在此工作
|
||||
```
|
||||
|
||||
| 分支 | 生命期 | 说明 |
|
||||
|---|---|---|
|
||||
| `main` | 永久 | 稳定版本,受保护 |
|
||||
| `develop` | 永久 | 日常开发分支,所有 agent 共用 |
|
||||
|
||||
**辅助分支(可选,用于实验):**
|
||||
|
||||
| 分支 | 前缀 | 生命期 | 说明 |
|
||||
|---|---|---|---|
|
||||
| 主线 | `main` | 永久 | 稳定版本,不直接在上面开发 |
|
||||
| 功能 | `feature/` | 合并后删 | 新系统、新功能 |
|
||||
| 修复 | `fix/` | 合并后删 | Bug 修复 |
|
||||
| 原型 | `prototype/` | 实验完即删 | 技术验证,随便写 |
|
||||
| 发布 | `release/` | 永久 | 从 main 切出,版本标记 |
|
||||
|
||||
**命名规则:** `<类型>/<小写连字符描述>`
|
||||
```
|
||||
feature/player-movement fix/camera-clipping release/v0.1
|
||||
```
|
||||
|
||||
**流程:**
|
||||
1. 从 `main` 拉分支 → 2. 开发并提交 → 3. 测试通过后合并回 `main` → 4. 删除分支
|
||||
1. 所有开发在 `develop` 上进行 → 2. 迭代完成时创建 PR → 3. 审查通过后合并回 `main`
|
||||
|
||||
---
|
||||
|
||||
@@ -100,3 +107,33 @@ Host gitea micecola.top
|
||||
**内网地址**(家里用):`ssh://sc-gitea@192.168.1.22:2223/starmen1265/ChildHood.git`
|
||||
|
||||
完整规范见 → [GIT-GUIDE.md](GIT-GUIDE.md)
|
||||
|
||||
---
|
||||
|
||||
## 自动化工作流
|
||||
|
||||
`git-workflow.sh` 脚本封装了常用 git 操作:
|
||||
|
||||
```bash
|
||||
# 开始工作:确保在 develop 上且最新
|
||||
bash .claude/scripts/git-workflow.sh ready
|
||||
|
||||
# 提交修改
|
||||
bash .claude/scripts/git-workflow.sh commit <type> <scope> "中文描述"
|
||||
|
||||
# 推送到远程
|
||||
bash .claude/scripts/git-workflow.sh push
|
||||
|
||||
# 查看状态
|
||||
bash .claude/scripts/git-workflow.sh status
|
||||
```
|
||||
|
||||
### PM 发布流程
|
||||
|
||||
```bash
|
||||
# 创建 develop → main PR
|
||||
bash .claude/scripts/git-workflow.sh release "迭代名称"
|
||||
|
||||
# 用户在 Gitea 合并后同步
|
||||
bash .claude/scripts/git-workflow.sh post-release
|
||||
```
|
||||
|
||||
+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