news 2026/9/6 17:02:34

3 条命令跑起来:git-rewrite-commits 用 AI 自动改写 Git 提交信息

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 条命令跑起来:git-rewrite-commits 用 AI 自动改写 Git 提交信息

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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 17:00:19

三菱Q系列PLC Socket通讯配置与梯形图实现详解

简介:三菱Q系列PLC之间SOCKET通讯详解是一份面向工业自动化工程师与PLC开发者的技术文档,围绕Q03UDE型号PLC间的以太网通信展开,系统梳理从SOCKET概念到实际落地的完整流程。文档先说明SOCKET作为TCP/IP封装接口的作用,再给出所需…

作者头像 李华
网站建设 2026/9/6 16:58:11

DeepSpeed-Chat:单卡训 13B RLHF 模型,1 条命令跑完三阶段

DeepSpeed-Chat:单卡训 13B RLHF 模型,1 条命令跑完三阶段 【免费下载链接】DeepSpeed DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/9/6 16:55:35

圆盘拉伸机直流双闭环调速系统设计:负载计算、参数整定与调试

简介:一份围绕二十四寸圆盘拉伸机直流调速系统的运动控制课程设计文档,面向自动化、电气工程及相关专业学生,用于《运动控制系统》课程设计中的调速方案论证、参数计算与设计报告撰写。文档从设计目的、内容与要求出发,以双闭环直…

作者头像 李华
网站建设 2026/9/6 16:49:15

如何一条命令查清进程启动链:witr 进程溯源工具选型指南

如何一条命令查清进程启动链:witr 进程溯源工具选型指南 【免费下载链接】witr Why is this running? Trace any process, port, container, or file back to what started it - CLI TUI. 项目地址: https://gitcode.com/GitHub_Trending/wi/witr 端口被占…

作者头像 李华
网站建设 2026/9/6 16:47:21

基于springBoot的灵官峡景区的网站开发与设计

1. 项目背景与意义灵官峡位于陕西省凤县,是嘉陵江上游著名的自然风景区,以峡谷地貌、红叶景观和红色文化资源闻名。随着文旅融合和智慧旅游的深入推进,景区对线上信息展示、票务预约、游客服务等数字化能力的需求日益迫切。传统的静态宣传页面…

作者头像 李华