GIM: 根据代码变更自动生成git提交消息的工具

GIM - Git Intelligence Message,是根据文件变更内容,自动生成提交消息的工具。

代码托管地址 https://github.com/davelet/git-intelligence-message

安装

前提要求是本地先安装了git工具。
本来我是用git2这个库来开发的,这个库不依赖git工具,但是API太难了。后来我想反正GIM是git的补充工具,我也不开发其他命令支持,干脆就调用git命令吧。所以你要有git安装好。

1. 通过Homebrew

brew tap davelet/gim
brew install git-intelligence-message

这里要求命令行版本在15以上,如果不是,可以按照提示升级即可

2. 从源码安装

把项目克隆下来:

git clone git@github.com:davelet/git-intelligence-message.git
cd git-intelligence-message
cargo install --path .

用法

可以直接阅读Readme文档 https://github.com/davelet/git-intelligence-message/blob/main/README.md ,我觉得写的挺清楚了。或者看一下用法文档如下:

gim -h
Usage: gim [OPTIONS] [COMMAND]

Commands:
  ai    Setup the ai-api configuration
  help  Print this message or the help of the given subcommand(s)

Options:
  -t, --title <TITLE>  The commit message title
  -a, --auto-add       Auto add the changes to the stage
  -p, --update         Ammend the last commit
  -v, --verbose        Show verbose output
  -h, --help           Print help
  -V, --version        Print version

这个项目使用的是clap库,所以这个文档是clap自动生成的。
主要有这么几个参数:

  1. 不指定参数:根据暂存区的变更生成message提交
  2. 指定-a:会先 git add .再生成消息提交
  3. 指定-t:这个没啥用我觉得,但是还是提供了这个功能,就是gim自动生成提交description,但是subject使用指定的。因为不指定subject的时候是根据description自动总结的,我觉得尽量用自动的都。
  4. 指定-p:这个是update的短命令,因为跟ai命令里的url冲突了,所以用了p。功能是启动–amend,也就是把变更合并进上一次提交,并且自动修改上一次提交的消息
  5. 指定-v:这个不是看版本,看版本用大写的。这个是查看工作流程的,会打印详细信息。一般没啥用,想玩就打开。

一般情况下,我推荐使用gim -a。因为你修改代码后不用主动 add,当然如果用IDEA之类的工具它会帮你add,加了这个参数也不影响,或者干脆就gim就可以。另外就是 gim -ap 既能提交又能修改。

原理

原理很简单,就是调用git命令看看有哪些变更,把变更发给AI,让AI给每一个文件生成一句总结;然后再根据这些变更总结生成一句汇总当作提交消息。

这些过程和命令都可以通过 -v 查看到。

所以使用之前需要先配置AI服务:

gim ai -h
Setup the ai-api configuration

Usage: gim ai [OPTIONS]

Options:
  -m, --model <MODEL>        the ai model name
  -k, --apikey <APIKEY>      the ai api key
  -u, --url <URL>            the ai api url
  -l, --language <LANGUAGE>  the answer language
  -h, --help                 Print help

这一段也是clap自动生成的,我真谢谢你,节省了我很多时间,不然我还得去编写文档。
主要有这些参数:

  1. -m指定模型名称
  2. -k指定你自己的token
  3. -u指定你要调用服务的地址,不指定就根据model名字猜测,很可能会猜不出来
  4. -l指定回复的语言,不指定就是英语

比如你可以执行

gim ai -m deepseek-v3 -u https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions -k sk-<你的token>

来完成配置。

程序内置了一些地址,所以如果你的模型是gemini 或者qwen或者gpt或者moonshot开头的,地址可以不用提供,会自动使用下面的地址:

  • moonshot:https://api.moonshot.cn/v1/chat/completions
  • qwen:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
  • gpt:https://api.openai.com/v1/chat/completions
  • gemini: https://generativelanguage.googleapis.com/v1beta/openai/

比如我上面配的是阿里云的deepseek模型,不能匹配这个规则,所以必须要提供url。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值