diff --git a/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md b/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md index 7c40576..92b2526 100644 --- a/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md +++ b/superpowers/plans/2026-09-10-ring-health-app-m0-m1.md @@ -4647,6 +4647,7 @@ obj/ cd /d/cherry/repos/ring-health-api git init -b main git add -A +git status --porcelain git commit -m "docs: 初始化 API 仓库骨架与接口契约草稿" git remote add origin http://120.192.101.56:3000/cuiluzheng/ring-health-api.git git push -u origin main @@ -4654,6 +4655,15 @@ git push -u origin main Expected: 推送成功。 +> **关于这里的 `git add -A`(ledger Ruling R32):** Global Constraints 有一条「提交时只 `git add` +> 本任务改动的那几个文件,不要 `git add -A`」,字面上与本步冲突。**本步是那条规则的唯一豁免, +> 且是刻意的** —— 这是一个 `git init` 出来的全新空仓库,工作区里**每一个**文件都是本任务建的 +> (`.gitignore` / `README.md` / `docs/api-contract.md`),`-A` 不可能卷进别人的改动; +> 而逐条列举反而更容易漏(`.gitignore` 是隐藏文件,最常被漏掉,漏了之后它不会进提交, +> 于是 `build/` 之类的目录将来会被误提交)。**新增的 `git status --porcelain` 就是为了守住这条豁免的前提:** +> 提交前必须确认列出的正好是那三个路径加 `.gitignore`;**若多出任何别的路径,停下来查清楚**, +> 不要直接提交。App 仓库(Task 1–12、14)不受此豁免影响,那里一律只 add 本任务的文件。 + > **`repos/ring-health-api` 目录本身还不存在**(已确认 `repos/` 下只有 `ring-health-app`),`git init` 是干净的。 > 但 Gitea 上的远程仓库是**在 Web UI 里建的**,若当时勾了「初始化仓库」(带 README / .gitignore), > `git push` 会因 `non-fast-forward` 被拒。这时**不要 `--force`**(会覆盖 Web UI 里可能已写的内容),