核心用法
Fork Manager 是面向活跃贡献者的专业 Fork 管理工具,解决"想用上游新功能,但 PR 迟迟未合并"的典型痛点。通过 repos/<repo>/config.json 配置,持续追踪 open PRs、本地补丁(closed/rejected PRs 的保留版本)与上游同步状态。
关键工作流:status 检查 → sync 同步上游 → update-config 更新 PR 列表 → review-closed 处理已关闭 PR(支持转为本地补丁)→ audit-open 审计冗余 PR → rebase-all 批量变基 → build-production 构建生产分支。
显著优点
1. 本地补丁体系:独家支持 localPatches 配置,将 rejected/wontfix PR 保留为长期本地维护分支,并设置 reviewDate 定期复查
2. 防数据丢失设计:强制 --force-with-lease 推送、自动 stash 未提交文件、append-only history.md 审计日志
3. 智能审计:自动检测 upstream 已解决的 PR、外部重复 PR、以及自身 PR 之间的文件重叠
4. 生产分支构建:一键合并所有 open PRs + 本地补丁,生成可部署的 main-with-all-prs 分支
局限性与风险
- 需 GitHub CLI 与写入权限:依赖
ghCLI 和 push 权限,无权限时功能受限 - 复杂冲突需人工介入:变基冲突时暂停等待手动解决,无法全自动处理
- 构建命令执行风险:
build-production会执行项目定义的 build 脚本(bun run build等),需提前审查 - 配置维护负担:每个仓库需手动维护 JSON 配置,PR 分支映射错误会导致操作失败
适合人群
- 长期维护多 fork 的开源贡献者
- 需要「用未合并 PR」+「保留上游更新」的 production 部署场景
- 处理 upstream 拒绝但业务必需的本地补丁的开发者
常规风险
| 风险 | 缓解措施 |
|------|---------|
| 强制推送覆盖他人工作 | `--force-with-lease` 替代 `--force` |
| 未提交文件丢失 | 自动 stash/restore 机制 |
| 恶意 build 脚本 | 执行前人工审查 `package.json` |
| 配置漂移 | `history.md` 完整记录每次执行状态 |