分支与部署
权威源:
CLAUDE.md §7与docs/aiAssistant/branch_divergence_audit_2026-05.md。
三分支现状
| 分支 | 角色 | 部署目标 | 状态 |
|---|---|---|---|
main | CI 锚点 + docs 构建 | 无部署 | 事实废弃(落后 dev 近 200 commit,无人维护) |
dev | 活跃开发线 | dev Cloud Run(reelchair-12b9a) | push 自动触发 deploy-dev.yml |
pro | 生产线 | prod Cloud Run(termina-ffde8) | push 自动触发 deploy-prod.yml |
不要基于 main 工作
main 已停摆。接手开发统一从 dev 出发。也不要直接在 pro 上提交——pro 只接收来自 dev 的 merge。
开发流程
# 1. 从 dev 创工作分支
git checkout dev && git pull
git checkout -b feat/<name>
# 2. 提交、推送
git add . && git commit -m "feat: ..."
git push -u origin feat/<name>
# 3. PR → dev;合并后 deploy-dev.yml 自动部署到 dev 环境
# 4. 验收 dev 后,合并 dev → pro
git checkout pro && git pull
git merge dev
git push origin pro # 自动触发 deploy-prod.yml
分支与 commit 命名
- 分支:
feat/<name>、fix/<name>、refactor/<name>、docs/<name>、chore/<name>。 - Commit 前缀:
feat:、fix:、refactor:、docs:、chore:、perf:、style:等。一个 commit 只做一件事。
CI(ci.yml)
- 触发:push 到
dev/pro/main/feat/*/fix/*/refactor/*/docs/*/chore/*等;PR 到dev/main/pro。 - 步骤:build → lint → test → build all。
Lint会真实执行 rootpnpm lint:pnpm lint:naming(命名约定)阻断、i18n 警告。- 注意:import 级 api-only 闸门尚未接入 CI(TER-111 后续),存量直引需 baseline-ratchet 处理。
生产部署(deploy-prod.yml)
并行四个 job:
- 前端 → Firebase Hosting
- 后端 → Cloud Run(
reelchair-backend,us-central1) - Functions + Firestore rules → Firebase
- Gateway 配置 seed(后端部署完成后运行)
两个 Firebase 项目并存
firebase deploy 必须带 --project,否则会误部署到 dev(.firebaserc:default=dev=reelchair-12b9a,prod=termina-ffde8)。