如何将代码变更自动生成Git提交消息工具成?

摘要:GIM - Git Intelligence Message,是根据文件变更内容,自动请求用户配置的AI服务,生成提交消息的工具。 代码托管地址 https:github.comdaveletgit-intelligence-mes
GIM - Git Intelligence Message,是根据文件变更内容,自动请求用户配置的AI服务,生成提交消息的工具。 代码托管地址 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自动生成的。 主要有这么几个参数: 不指定参数:根据暂存区的变更生成message提交 指定-a:会先 git add .再生成消息提交 指定-t:这个没啥用我觉得,但是还是提供了这个功能,就是gim自动生成提交description,但是subject使用指定的。因为不指定subject的时候是根据description自动总结的,我觉得尽量用自动的都。 指定-p:这个是update的短命令,因为跟ai命令里的url冲突了,所以用了p。功能是启动--amend,也就是把变更合并进上一次提交,并且自动修改上一次提交的消息 指定-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自动生成的,我真谢谢你,节省了我很多时间,不然我还得去编写文档。
阅读全文