不想写 commit message?Aigit 用 AI 帮你搞定 Git 提交、分支命名和 PR
用过 git commit -m "fix bug" 然后被人 review 时嫌弃「这写了等于没写」?或者对着终端发呆 30 秒,就是想不出一个像样的分支名?
这不是你懒——这是 Git 操作中最高频但最没价值的三件事:写 commit message、想分支名、写 PR 描述。它们需要思考,但思考的成果大部分时候是「feat: add login」这种信息量几乎为零的文字。
Aigit 就是来解决这个问题的——一个开源的 Python CLI 工具,把你的 Git diff 扔给 GPT,自动生成规范的 commit message、分支名和 PR 描述。不是那种模板填空式的生成,而是真的读懂你改了什么的 level。
为什么这是个问题
说「不就是写个 commit 吗」的人,大概率没审过别人的 PR。坏的 commit message 带来的后果是隐性的:
- 回溯成本高:三个月后
git blame看到fix stuff,你完全想不起来当时改了啥。需要逐行 diff,时间 ×3 - Code Review 效率低:PR 标题是
Update code,reviewer 得先花 5 分钟看 diff 猜意图,才能给出有效反馈 - 自动化工具读取困难:changelog 生成、语义版本推断、自动发布的工具都依赖规范化的 commit message,
fix stuff等于断了这些工具的输入
手动写好的 commit message 不是写不出来——是不值得。每次提交前的思考时间累积起来,一年可能就是好几个小时。
手动方案 vs Aigit
这里不是要你完全放弃思考——而是把「写一段描述性的 commit 文字」这件事从你的工作流中剥离,让 AI 帮你做。
| 场景 | 手动做的事 | 用 Aigit 做的事 |
|---|---|---|
| 写 commit message | 看 diff → 想格式 → 写一行描述 → 不满意 → 重写 | git add . + aigit commit → 确认 |
| 取分支名 | 想一个有意义又不重的名字 | aigit branch "add auth" → 直接用 |
| 写 PR | 写标题 + 正文 + 改格式 | aigit pr --draft → 编辑 → 发布 |
安装与配置
Aigit 的安装不用改任何系统配置,一行命令就行:
pipx install git+https://github.com/hardiksondagar/aigit.git
如果没有 pipx,传统的 pip 安装也可以,但注意把 ~/.local/bin 加到 PATH:
git clone https://github.com/hardiksondagar/aigit.git cd aigit pip install .
安装后需要配置 API Key——Aigit 使用 OpenAI 的模型来生成内容。成本很低,$5 的额度可以覆盖几千次 commit:
aigit config set openai_api_key sk-... aigit config set github_token ghp_... aigit config set model gpt-4o
配置保存在 ~/.config/aigit/config.toml,支持完整的环境变量回退(设 OPENAI_API_KEY 也行)。
Aigit 解决三个实际场景
场景 1:再也不为 commit message 发愁
这是 Aigit 的核心场景。改了代码后,add 再 commit,AI 自动从 diff 中提取信息生成规范的消息:
git add . aigit commit
输出是这样的:
Generating commit message... ╭─ Generated Commit Message ────────────────────╮ │ feat: add user authentication with JWT │ │ │ │ Implement JWT-based authentication system │ │ with login and token refresh endpoints │ ╰────────────────────────────────────────────────╯ Action (commit/edit/cancel): commit ✓ Committed as a1b2c3d
生成的 commit 严格遵循 Conventional Commits 格式(feat:, fix:, chore: 等),交互式界面让你在 commit、edit、cancel 三选一。如果不满意,选 edit 调整后再提交。
几个实用变体:
aigit commit -a aigit commit -m "hint: added rate limiting for API endpoints" aigit commit -y
场景 2:命名困难症?让 AI 帮你想分支名
「这个分支是修 bug 还是加功能?它应该叫什么?」——Aigit 帮你跳过这个纠结:
git add . aigit branch aigit branch "add user authentication"
场景 3:PR 描述不用再从头写起
这是最有价值的场景之一。创建 PR 时,Aigit 自动对比当前分支和 base 分支的差异,生成结构化的描述:
aigit pr aigit pr --base develop aigit pr --draft aigit pr -y
生成的 PR title 和 description 包含了改动概览、改动内容和影响范围。你只需要 review 一下,没大问题就直接发。
额外功能:Code Review 和代码解释
除了写之外,Aigit 还提供了两个辅助能力:
git add . aigit review aigit explain HEAD aigit explain abc123
explain 在团队协作中特别有用——同事推了一个 commit,你不想看 diff 又想快速知道改了啥,一条命令就够了。
最佳实践
用 alias 把 Aigit 融入日常
加几个别名,把 aigit 命令变成日常肌肉记忆:
alias gc='git add . && aigit commit' alias gb='aigit branch' alias gpr='aigit pr' alias gr='git add . && aigit review' alias ge='aigit explain'
用 hint 提升生成质量
虽然 AI 能从 diff 中读懂改了什么,但加上一点上下文 hint 能让 message 更有价值:
aigit commit -m "refactored payment module to use new provider"
这样生成的消息会包含重构的上下文,而不是仅仅描述 diff 本身做了什么。
配置自动 stage
如果觉得两段式 git add . + aigit commit 太啰嗦,直接开自动 stage:
aigit config set auto_stage true aigit commit -y # 一条命令,stage 全部 + commit 确认无交互
总结
Aigit 不是要取代你对代码的理解——它只是把「写 Git 元数据」这个低价值但高频率的操作自动化了。对于个人开发者,它能让你每天的 commit 更规范;对于团队,它意味着可读性更强的提交历史、更快的 Code Review 和更顺畅的自动化工具链。
GitHub: github.com/hardiksondagar/aigit
MIT License,Python 3.10+,支持 OpenAI 和 GPT-4o-mini/GPT-4o。33 个 stars,社区活跃,最近还在更新 roadmap。
相关链接: