用途:在 Fallow 工作完成评审后执行“发布”流程,把已评审的改动真正落地——合并到各仓库默认分支、跑预推送对等检查、监控合并提交的 CI,并保持各检出目录干净同步。适合被要求 ship、merge 或推进合并时使用。
主要能力与用法:
- 发布前确认分支与 diff 与评审范围完全一致,并按 docs/development/quality-gates.md 重跑要求检查。
- 确认公共契约与生成文件已推送;把每个配套变更合入其仓库默认分支(如 fallow-docs main)。仅推送特性分支不够,发布必须合并它。若合并改动涉及 npm/fallow/skills,运行 node scripts/sync-skills-companion.mjs 并推送其准备的 fallow-skills 提交。
- 只创建签名常规提交,经由仓库当前的 protected-main 流程合并。
- 监控合并提交直到必要 CI 完成:node scripts/ship-wait-checks.mjs --commit <full sha> --min-checks <count> --follow-main;重试失败作业前确认分支包含当前基线(git merge-base --is-ancestor origin/main HEAD)。
- 检查合并树有无冲突标记与生成漂移,让每个受影响的检出恢复干净同步。必要工作流仍在运行时不得宣布完成。
串行合并多个 PR:因每次合并改动 main 上 CHANGELOG.md,下一个分支会冲突,需逐个处理:用 node scripts/ship-rebase.mjs --pr <number> --push 变基;该脚本保留 CHANGELOG.md 冲突双方,其他冲突则停止;通过检查后才推送。等 CI 时把 --min-checks 设为近期完整运行的检查数:node scripts/ship-wait-checks.mjs --pr <number> --min-checks <count>。docs 配套 PR 用 node <fallow>/scripts/ship-docs-rebase.mjs --pr <number> --push,并在等待命令加 --repo fallow-rs/docs。
限制与说明:变基脚本不改动运行它的检出,而是新增带分离 HEAD 的临时工作树,变基、检查与推送都在其中执行;停止或失败时保留工作树并打印路径与后续命令,冲突需在工作树内解决(git -C <worktree> rebase --continue 或 rebase --abort),丢弃用 git -C <checkout> worktree remove --force <worktree>。第二次相同失败是缺陷而非偶发,应诊断而非再次重试。各脚本用 --help 显示选项与退出码。更多平台与收费信息暂未提供。