3 条命令跑起来:git-rewrite-commits 用 AI 自动改写 Git 提交信息
【免费下载链接】nekoA self hosted virtual browser that runs in docker and uses WebRTC.项目地址: https://gitcode.com/GitHub_Trending/ne/neko
打开git log翻历史,满屏的 "fix"、"update",三个月后连自己都不知道当时改了什么——这种困扰用过 Git 的人大概率都遇到过。git-rewrite-commits 是一款 AI 提交信息改写工具,它调用 OpenAI 或 Ollama 等模型,把你暂存区里的变更自动改写成符合约定式提交规范的文本,新手和老手都能直接用。
效果对比:AI 提交信息改写的实际样子
看效果最直观:改写前往往只有一句含糊的"修了个 bug";改写后信息明显分层——类型(feat、fix、docs)一眼看出变更性质,作用域点明受影响的模块,描述则把具体做了什么说清楚。几次积累下来,git log不再是天书,而是一份能直接当 changelog 读的记录。
上手篇:安装 Git 钩子,三条命令跑起来
流程很短,三步走完:
git clone https://gitcode.com/GitHub_Trending/ne/neko克隆完成后配置模型密钥。用 OpenAI 的话,导出密钥即可:
export OPENAI_API_KEY="your-api-key"如果本地跑了 Ollama 服务,则不需要密钥,选择对应的本地提供程序就行。最后一条命令,把 Git 钩子装进仓库:
npx git-rewrite-commits --install-hooks装好之后,你的操作习惯完全不用变:照旧git add .、git commit,编辑器弹出来时,✨ 规范的提交信息已经替你写好了,看一眼没问题直接保存即可。
机制篇:三个 Git 钩子如何接力工作
整个工具其实是一条时间线上的接力,全程不需要你主动调用:
提交时——你敲git commit的瞬间,prepare-commit-msg 钩子被触发。它读取暂存区的 diff,交给 AI 模型生成一段符合约定式提交的信息,直接写进编辑器。这就是你打开编辑器看到"已躺好"文案的原因。
提交后——post-commit 会在提交落库后自动跑一轮检查,对没有完全达标的信息再润色一次,保证写进历史的内容都是合格的。
推送前——pre-push 是最后一道关。执行git push前它会检查尚未推送的提交,发现不规范的会提示你处理,让远程仓库里的历史始终干净。
先代写、再校验、后把关,三道工序串下来,你只需要在最后做"确认"这一个动作。
定制篇:团队提交模板与两层配置
配置团队提交模板
如果团队有统一的前缀要求(比如必须挂 JIRA 编号),用模板把格式锁死:
git config hooks.commitTemplate "[JIRA-XXX] feat: message"之后 AI 生成的每条信息都会按这个骨架输出,整个团队的提交风格自然就对齐了。
选择提交信息语言与配置范围
提交信息还支持多语言,比如设成日语:
git config hooks.commitLanguage "ja"西班牙语(es)、法语(fr)等同样可用。注意区分范围:上面这条只作用于当前仓库;加上--global则是全局配置,对机器上所有仓库生效,适合想统一规范的个人开发者。
内部篇:这个工具是怎么实现的
整体用 TypeScript 编写,结构上分三层:packages/grec/cli.js 是命令行入口,负责参数解析和钩子安装;src/providers/ 存放各模型提供程序模块,抹平 OpenAI 与 Ollama 之间的调用差异;hooks/ 目录则存放 prepare-commit-msg、post-commit、pre-push 三个钩子脚本。
排障篇:三个常见问题与一行解法
⚠️ 遇到报错不用慌,多数情况一条命令就能解决:
- 提示 API 密钥未设置 →
export OPENAI_API_KEY="sk-...",并写进 shell 配置文件持久化 - 钩子没生效 →
ls -la .git/hooks/查看钩子文件是否存在,缺了就重新跑npx git-rewrite-commits --install-hooks - 想卸载钩子 → 直接删除
.git/hooks/下对应文件,如rm .git/hooks/prepare-commit-msg
写在最后
git-rewrite-commits 适合两类人:想借 AI 生成的规范信息顺带学会约定式提交的新手,以及不想在提交信息上耗时间的老手。建议先在一个测试仓库里试两周,把模板和语言调到自己顺手,再推广到日常项目里。
【免费下载链接】nekoA self hosted virtual browser that runs in docker and uses WebRTC.项目地址: https://gitcode.com/GitHub_Trending/ne/neko
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考