git 仓库维护方案标准¶
本方案定义 lab-edu 四仓库的 git 维护标准:仓库命名、分支、提交、MR、版本、CI、敏感信息与回滚。 上位约束:宪法 §2(分层)/ §4(框架优先)/ §7(变更与评审);细则唯一权威 CONTRIBUTING 的既定约定。README/PR 模板等工程细则不在此重复(DRY)。
1. 仓库与命名¶
- 四个独立 GitLab 仓库,均置于
lab-edugroup:docs/core/web/infra。 - 命名遵守 CONTRIBUTING 模块/仓库命名规则(小写 + 短横线,无私有缩写)。
2. 分支模型(Trunk-based 简化)¶
main为唯一常驻分支;一切变更经 Merge Request(MR)合入,禁止直接 push main。MVP 期单人也不例外——保留审计轨迹,且 MR 是宪法 §7 评审的落地入口。- 分支名:
feat/<slug>|fix/<slug>|docs/<slug>|refactor/<slug>|chore/<slug>。 - 一个分支与 MR 对应一个可独立验证的逻辑交付,可以包含该交付所需的多条 task;MR 描述逐项关联任务编号,任务仍按 CONTRIBUTING 的文件粒度拆分和逐条验证。完成即合入,不留长期分支。
3. 提交信息¶
- Conventional Commits:
<type>(<scope>): <subject>;type ∈feat/fix/docs/refactor/chore/test/ci。 - subject 用中文,≤50 字符,结尾无标点(宪法 §5 文档语言条款)。
- 涉及 Spec/Plan/Tasks 的提交,subject 末尾附引用 id(如
[T003]、[auth-spec-001]),保证提交可溯源到规格。
4. MR 规范¶
- MR 标题 = 分支对应提交的 subject。
- MR 描述三段式:
- 依据:关联的 spec/plan id(无则写"无,直改"——MVP 期小改动可省规格,按执行摘要的取舍原则);
- 改动:简述,限 1 个逻辑单元;
- 宪法符合性自查:框架优先(§4)/ 范围红线(§8)/ 质量底线(§5)三项勾选 + 需联动文档路径。
- 一个 MR ≤1 个逻辑单元;大改动按 tasks.md 拆多个 MR。
- 评审:总架构师初审 → 产品经理终审(与宪法评审一致,MVP 期可由产品经理一人代行并在 MR 留言留痕)。
- 合并方式:feature 分支 rebase 于最新 main 后快速合并,保持线性历史;禁止 force-push main。
5. 版本与 tag¶
- MVP 期四仓库不打 git tag;版本唯一权威:文档类在文件 frontmatter(SemVer),代码类小版本在构建配置(pom.xml / package.json),宪法只维护基线(宪法 §3)。
- core 首次生产部署时打
v0.1.0,此后按 SemVer 递增;发布流程细则随 infra 相关 Spec。
6. CI(随各仓库首个提交上线,MVP 最小集)¶
| 仓库 | MVP 最小 CI | 失败处理 |
|---|---|---|
| docs | mkdocs build + GitLab Pages 发布 |
MR 阻塞 |
| core | mvn verify(编译 + 单测) |
MR 阻塞 |
| web | npm ci + lint + build |
MR 阻塞 |
| infra | docker compose config 校验 |
MR 阻塞 |
- CI 配置属各仓库代码;runner 规格、缓存等细则归 infra 规划,不在此展开(YAGNI)。
7. 敏感信息¶
.env*与密钥文件一律不入库;密钥走 GitLab CI/CD variables(masked)。- 残留密钥:发现即轮换 + 提交历史审计(含历史提交内容,必要时重写仅限未共享分支)。
8. 回滚与历史¶
- 回滚用
git revert生成反向提交;不改写已推送 main 的历史。 - 破坏性变更(DB migration / 接口破坏)上线前评审并留备份方案,细则归对应核心 Spec。
9. 初始化执行¶
- 本方案已于 2026-10-29 随整稿批准;取得 GitLab 实例、group 和访问条件后执行:四仓库 git init +
main保护 + 分支模型落地;仓库创建与 CI 配置(§6)随各仓库首个代码提交一并上线。
三原则审查(提交前)¶
- KISS:MVP 最小集——无 CodeOwners、无 release plugin、无 monorepo tooling、无 tag 流程(首发再说)。
- YAGNI:单人多仓库 MVP 期省掉:分阶段部署分支、backport、changelog 自动化、依赖机器人;全部挂靠失败可等首个真实需求。
- DRY:不重复 CONTRIBUTING 已定约定(命名/提交格式仅按既有约定引用);规范细则留 CONTRIBUTING,本方案专注 git 层面。
评审记录¶
用户于 2026-10-29 确认整稿评审包,包含多 task 组成一个逻辑 MR 的修订。四仓库远端尚未创建或配置保护;本文件批准不等于已执行。依据见批准记录(本地资料,未发布)。
[SPEC-KIT APPENDED 2026-10-30] main 分支规则执行记录¶
四个新建私有项目均已创建 main 分支规则:无人可直推、维护者可经 MR 合并、禁止强制推送。远端仍为空,首次 main 引导和 CI 随首批逻辑 MR 落地;不得以初始化为由绕过 MR 规则。详见 仓库规划。
[SPEC-KIT APPENDED 2026-10-29] 用户命名修订¶
用户明确要求仓库直接命名 docs、core、web、infra,完整路径为 lab-edu/docs 等,不重复 group 前缀。本次将命名条款与 CI 表同步至 0.1.1;不修改仓库职责、分支流程和旧仓库禁读边界。远端实际创建状态见 repository-plan 与执行记录。