作者:UncleSam 项目开源地址:[github.com/unclesamly/g
写了个命令行小玩具:在终端敲一下 `git air`,让 AI 帮我挑刺
发布时间: 2026-08-17 (23 days ago)
GOAIGemini

作者:UncleSam
项目开源地址:github.com/unclesam-ly/git-air


01. 事情的起因:AI 写代码一时爽,Review 起来火葬场

现在的程序员,写代码基本上都离不开 AI 辅助了(Cursor、Copilot、各种大模型插件)。

几秒钟就能刷刷生成上百行代码,开发速度确实飞快。

但不知道你有没有发现一个越来越头疼的痛点:

  1. AI 写的代码“看起来太完美了”:排版整齐、注释漂亮、语法毫无毛病,让人很容易产生盲目信任;
  2. 自己问生成 AI“有没有 Bug”,它只会自卖自夸:在同一个对话上下文里,生成代码的那个 AI 往往有很强的“思维惯性”和“自恋幻觉”,你问它“这样写对吗”,它大概率自信满满地回复“代码完全正确,逻辑非常健壮!”;
  3. 人类的肉眼极难发现那些隐蔽暗坑:比如在某个隐蔽的 if err != nil 提前 return 时漏了解锁(Mutex Leak)、协程内部缺少 recover、循环体内频繁创建未关闭的连接……这些问题肉眼一扫极容易漏掉。

这就陷入了一个尴尬的死循环:AI 负责批量生产代码,人类程序员负责在半夜线上崩溃时擦屁股。

我就在想:能不能搞一个独立、冷酷、完全剥离聊天上下文的“第三方审查员”,在本地准备提交前,用放大镜给我严格挑刺?

于是我花了一下午时间,用 Go 写了这个轻量级的命令行小玩具——git-air


02. 这小玩具是干嘛的?

简单来说,它就像一个坐在你工位旁边、嘴有点损但眼神极毒的资深架构师同事

它完全不关心你之前是手写的还是 AI 生成的,也不受任何对话上下文的干扰。你在终端改完代码,直接在命令行敲一行:

bash 复制代码
git air

它就会自动抓取你刚改动的代码差异(git diff),以最严厉的视角进行扫描,在终端逐字吐出审查意见:

text 复制代码
[git-air] 代码评审中... (Engine: gemini / gemini-3.7-flash)
─────────────────────────────────────────────────────────────────
#### 变更概述
在用户登录接口中增加了 Redis 缓存逻辑。

#### 详细审查意见
- [BLOCKER] internal/service/user.go:45 - 致命缺陷:在循环中直接拼接 SQL 字符串,存在明显的 SQL 注入风险,且未做参数校验。
  // 修复代码
  db.Where("username = ?", inputName).First(&user)

- [WARNING] internal/service/user.go:82 - 潜在隐患:查询 Redis 失败后直接忽略了错误,当缓存击穿时会导致所有流量压向数据库。

- [WARNING] internal/service/user.go:103 - 资源泄漏:AI 生成的代码在 early return 分支中未调用 defer unlock(),存在并发死锁隐患。

#### 评审结论
- 结论: [REJECT]
- 评分: 60 / 100
─────────────────────────────────────────────────────────────────

没有虚伪的客套,不搞“整体写得真棒”那一套,有 Bug 说 Bug,并且直接给出修改前后的代码补丁

用 AI 的放大镜,去审查 AI 生成的代码——这就叫**“用魔法打败魔法”**。


03. 它有什么好玩的特性?

虽然只是个几百行 Go 代码的小玩具,但麻雀虽小,五脏俱全:

1. 像空气一样轻(极速单二进制)

纯 Go 编写,没有复杂的后台守护进程,不用装 Docker。用 go install 安装完就是一个独立的小工具,敲命令就跟敲 git status 一样顺手。

2. 不浪费你的 Token(智能降噪)

平时 git diff 经常会带出一大堆恶心人的文件,比如几万行的 go.sumpackage-lock.json、自动生成的 *.pb.go
git-air 会自动把这些垃圾锁文件过滤掉,只把真正的手写核心代码发给 AI,省钱又省时间。

3. 市面上的大模型全都能用

你想用什么模型都行,它预置了国内外几乎所有大模型的官方地址,一行命令就能切:

  • 想极速又便宜:用 Google Gemini
  • 想看深度逻辑推理:用 DeepSeek
  • 怕代码传到外网:用本地的 Ollama(100% 离线隐私审查,断网也能跑);
  • 还有 Claude-3.7、Grok、通义千问 Qwen、智谱 GLM、Kimi、OpenAI,想用哪个用哪个。

4. 团队规则(.airules

你在项目根目录扔一个叫 .airules 的文件,写上你们团队的铁律(比如:“禁止裸写 SQL”、“所有并发必须传 Context”)。
AI 在审查时就会拿你们的专属家规来卡代码,特别适合给团队统一代码风格。


04. 怎么玩起来?

只要你本地有 Go 环境,两步搞定:

步骤一:安装

bash 复制代码
go install github.com/unclesam-ly/git-air@latest

步骤二:配个 Key

比如用 Gemini(推荐,速度飞快):

bash 复制代码
git air config set --provider gemini --key "你的API_KEY"

或者用 DeepSeek:

bash 复制代码
git air config set --provider deepseek --key "你的KEY" --model deepseek-chat

步骤三:直接跑!

随便进入你的任意 Git 项目目录:

bash 复制代码
# 评审当前修改的代码
git air

# 或者评审刚刚提交的那一次 Commit
git air HEAD~1

# 或者只审查某个文件
git air internal/service/chat.go

甚至你敲一行 git air hook install,它就会自动变成 Git 的提交拦截门禁,提交有高危代码时直接在终端提醒你。


05. 结语

写这个东西不是为了搞什么宏大的“企业数字化革命”,纯粹是为了让自己在享受 AI 写代码的高效时,能多一个冷静客观的“把关人”,少写点低级 Bug、少加点无意义的班。

顺便还给它画了个挺萌的吉祥物 Logo:一只头戴飞行风镜、披着小斗篷、拿着放大镜找 Bug 的 Go 地鼠。

代码完全开源在 GitHub,一共就几百行 Go 代码,架构很干净。如果你平时也是命令行重度用户,欢迎拿去当个玩具把玩把玩,点个 Star 或者提个 PR 一起改着玩!

🔗 GitHub 仓库https://github.com/unclesam-ly/git-air