
git push no-mistakes 工作原理完整拆解一条命令如何自动把关代码质量【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakesno-mistakes是一款开源的 AI 代码质量门禁工具你只需把git push origin换成git push no-mistakes它就会在本地拦截这次推送自动执行「AI 审查 → 测试 → 文档 → Lint」等 9 步验证流水线通过后才转发到你的真实远程仓库并自动创建干净的 PR。本文完整拆解它背后的工作原理帮你看懂这个「推送前质量闸门」是如何运转的。一、为什么需要 git push no-mistakesAI 编程时代代码写得快了瓶颈变成了审查和验证。传统流程是本地分支 → 直接推到远程 → CI 失败 → 再修再推循环往复。no-mistakes把验证环节从「分支公开之后」拉回到「本地推送之前」传统方式使用 no-mistakes原始分支直接推到远程先自动 rebase 到最新上游远程 CI 才能发现测试失败本地先跑针对性测试手写 PR 描述自动生成结构化 PR手动盯着 CI 修失败自动监控 CI 并尝试修复二、一条命令的完整旅程当你输入git push no-mistakes branch后内部发生了 6 件事推送到本地门禁仓库no-mistakes不是真实远程而是一个本地的裸 Git 仓库bare repo位于~/.no-mistakes/repos/id.gitpre-receive 钩子准入在 Git 改动任何引用前钩子会请求守护进程「准入」这次推送防止验证步骤自己递归触发流水线post-receive 钩子通知推送写入后钩子调用no-mistakes daemon notify-push通知后台守护进程创建一次性 worktree守护进程为本次运行创建一个独立的~/.no-mistakes/worktrees/repoID/runID/工作树你的工作目录全程不受干扰顺序执行 9 步流水线intent → rebase → review → test → document → lint → push → pr → ci全绿后转发只有所有检查通过push步骤才会把分支推到真实远程pr步骤创建 PRci步骤持续盯着 CI 直到合并。相关实现分别位于internal/gate/门禁钩子、internal/daemon/守护进程与 worktree 管理、internal/pipeline/steps/各流水线步骤。三、核心机制①本地「门」—— 不劫持 origin 的裸仓库很多 Git 工具喜欢偷偷改写你的 remoteno-mistakes反其道而行命名 remoteno-mistakes init会新增一个名为no-mistakes的远程指向本地裸仓库你的origin原封不动随时可以用git push origin绕过门禁显式即信任你必须主动输入git push no-mistakes才进入验证这是一个「选择加入」的闸门而不是隐藏陷阱GitHub fork 场景no-mistakes init --fork-url 你的fork会让分支推送到你的 fork而 PR 依然基于父仓库的origin创建。这套架构的详细设计见docs/src/content/docs/concepts/gate-model.md。四、核心机制②9 步固定流水线流水线顺序是刻意写死、不可配置的顺序固定但每步执行的命令可以配这样「通过门禁」在任何仓库里含义一致步骤做什么1.Intent 意图采用你提供的意图或从本地 Agent 会话记录推断本次改动目的2.Rebase拉取最新上游并变基你的分支若变基后没有差异则直接跳过后续步骤3.Review 审查AI 代码审查你的 diff默认需要人工批准auto_fix.review默认 04.Test 测试针对改动做本地验证不是全量 CI有意图时还会收集测试证据5.Document 文档按需更新文档并报告未解决的缺口6.Lint执行 Lint/静态分析未配置命令时与文档步骤合并成一次「大扫除」7.Push确认不会丢弃远程已有提交后安全推送分支8.PR自动创建或更新 Pull Request9.CI监控 CI 与可合并性自动修复失败可配置重试上限默认 3 次为什么 Review 在 Test 之前、Lint 放在最后因为要让 Agent 读「刚修完的新鲜代码」并避免在还会变的代码上反复格式化。这些取舍的完整说明在docs/src/content/docs/concepts/pipeline.md。五、核心机制③AI Agent 审查与自动修复循环 no-mistakes与 Agent 解耦支持claude、codex、grok、opencode、pi、copilot、rovodev、antigravity、cursor等可以全局配置、按仓库覆盖甚至配置有序回退列表比如agent: [codex, grok]。各 Agent 的接入实现位于internal/agent/。每步检查都会产生findings发现项按严重级别error/warning/info和处理方式分为三类auto-fix客观问题Agent 自动修复后重跑该步骤验证循环直到通过或达到重试上限ask-user涉及意图或产品判断的问题流水线会暂停等你在 TUI 里选择批准、修复或跳过no-op仅提示不需要修复。这个「修复循环」的完整逻辑见docs/src/content/docs/concepts/auto-fix.md。暂停时运行no-mistakes会打开 TUI用space勾选发现项、f触发修复、e追加备注——人类始终掌握最终决定权。六、核心机制④守护进程与一次性 worktree为什么git push能瞬间返回、验证却在后台继续跑因为有个常驻守护进程macOS 上是 launchd 用户服务Linux 上是 systemd 用户服务Windows 上是计划任务统一管理通过 Unix 域套接字~/.no-mistakes/socket与 CLI/TUI 通信基于 JSON-RPC 2.0 实时推送步骤进度和日志所有状态持久化在 SQLite~/.no-mistakes/state.sqlite崩溃重启后能恢复等待中的审批闸门每次运行都在独立的 detached worktree里进行守护进程可以放心地 rebase、跑测试、让 Agent 改文件并提交修复结束后自动清理绝不动你的工作目录同一分支的并发推送会取消旧运行、用最新推送启动新运行不同分支则并行执行。状态、日志、锁等本地文件的完整清单在docs/src/content/docs/concepts/daemon.md。七、三步快速上手# 1. 安装 curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | sh # 2. 在任意有 origin 的仓库里初始化门禁 no-mistakes init # 3. 从此以后推送走门禁 git push no-mistakes branch安装后可以用no-mistakes doctor检查 Git、Agent 运行器claude/codex 等和gh/glab等 PR 工具是否就绪。仓库源码可从git clone https://gitcode.com/GitHub_Trending/no/no-mistakes获取完整命令参考见docs/src/content/docs/reference/cli.md。八、三种触发方式总有一条适合你 方式适用场景git push no-mistakes显式 Git 路径已提交后推送no-mistakesTUI 向导帮你建分支、提交、推送并附加到运行/no-mistakes 任务让 Claude Code 等编码 Agent 直接干活并走门禁技能文件安装在用户级~/.claude/skills/no-mistakes/SKILL.md底层由非交互的no-mistakes axi命令驱动同一套审批流。总结git push no-mistakes背后其实是四层设计协作命名 remote 的本地裸仓库负责拦截、固定 9 步流水线负责质量语义、多 Agent 自动修复循环负责干活、守护进程 一次性 worktree负责隔离与恢复。它不隐藏 Git、不劫持 origin只在你主动推送时把「审查 → 测试 → 修复 → PR → CI」整条闭环压缩进一条命令里——这就是它「干净 PR默认交付」的全部原理。【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考