本文面向开发同事和 AI,说明一个需求如何从提出、设计、开发、测试走到稳定分支。 详细 Gate 规则以同目录的 SKILL.md 和仓库 生命周期流程 为准。
master 是稳定基线,禁止直接提交。feature_id 和一个共享 feature 分支。master,通过开发 Gate 后再拉 feature 分支。master。flowchart TD
A["提出需求并分配 feature_id"] --> B["docs/FEAT-... 编写需求、设计、测试与开发计划"]
B --> C{"文档评审通过?"}
C -->|否| B
C -->|是| D["通过 PR 合入 master"]
D --> E{"ready_for_development Gate"}
E -->|未通过| B
E -->|通过| F["从已记录的 origin/master SHA 创建 feature/FEAT-..."]
F --> G["团队在共享 feature 分支开发"]
G --> H["合入最新 origin/master 并执行测试"]
H --> I{"ready_for_merge Gate"}
I -->|未通过| G
I -->|通过| J["feature PR 以 merge commit 合入 master"]
J --> K["docs/FEAT-...-closeout 记录合并 SHA 与最终结论"]
K --> L["需求完成并删除远程 feature 分支"]
gitGraph
commit id: "稳定 master"
branch docs/FEAT
checkout docs/FEAT
commit id: "需求与设计"
commit id: "测试与开发计划"
checkout main
merge docs/FEAT id: "文档评审通过"
branch feature/FEAT
checkout feature/FEAT
commit id: "开发提交 A"
commit id: "开发提交 B"
checkout main
commit id: "其他稳定变更"
checkout feature/FEAT
merge main id: "同步 master"
commit id: "测试结果"
checkout main
merge feature/FEAT id: "需求合并"
branch docs/FEAT-closeout
checkout docs/FEAT-closeout
commit id: "收尾记录"
checkout main
merge docs/FEAT-closeout id: "生命周期完成"
图中的 main 表示本仓库实际使用的 master。部分 Mermaid 渲染器将主线固定显示为
main,不影响真实分支名称。
| 用途 | 名称 |
|---|---|
| 需求和设计文档 | docs/FEAT-YYYYMM-NNN-short-name |
| 共享开发 | feature/FEAT-YYYYMM-NNN-short-name |
| 合并后收尾 | docs/FEAT-YYYYMM-NNN-short-name-closeout |
| 生产紧急修复 | hotfix/<short-name> |
| 跨需求临时联调 | integration/<feature-a>-<feature-b> |
开发负责人确认 ready_for_development Gate 通过后,记录准确的
origin/master 基线 SHA,再创建共享分支:
git fetch origin
git switch master
git pull --ff-only origin master
git switch -c feature/FEAT-YYYYMM-NNN-short-name
git push -u origin feature/FEAT-YYYYMM-NNN-short-name
创建分支和 push 必须获得明确授权。不要从尚未同步的本地 master 创建需求分支。
首次拉取共享分支:
git fetch origin
git switch --track origin/feature/FEAT-YYYYMM-NNN-short-name
已有本地分支时,在开始工作和 push 前同步团队提交:
git switch feature/FEAT-YYYYMM-NNN-short-name
git pull --no-rebase origin feature/FEAT-YYYYMM-NNN-short-name
完成一个可工作的改动后正常提交和推送:
git add <本次相关文件>
git commit -m "简要说明本次改动"
git push origin feature/FEAT-YYYYMM-NNN-short-name
普通提交信息不要求固定前缀。不要使用 git push --force,也不要对已共享的 feature
分支执行 rebase。
最终评审前必须把最新稳定代码合入 feature 分支:
git fetch origin
git switch feature/FEAT-YYYYMM-NNN-short-name
git merge origin/master
解决冲突后重新执行改动模块的编译、测试和适用的架构测试。同步完成后再 push feature
分支并发起 feature/FEAT-... -> master PR。
ready_for_developmentorigin/master 并记录基线 SHA。ready_for_mergeorigin/master,不存在未解决冲突。paused,保留 feature 分支;恢复时重新同步
master 并检查 Gate。cancelled,未完成代码不得合入 master。feature_id。master;确需并行联调时
使用一次性 integration 分支,该分支不能直接合入 master。hotfix/<short-name>,至少记录故障、修复范围和验证结果,
仍通过 PR 合入 master,事后补齐需求记录。AI 可以自动检查文档、分支、工作区、远程同步状态和 Gate,也可以给出推荐命令。 创建分支、提交、push、创建或合并 PR、删除远程分支前,必须获得用户明确授权。