#commit-message #conventional-commits #git-commit #commit #git-diff #ChatGPT #cli-tool

app turbocommit

一个使用OpenAI GPT模型创建提交消息的CLI工具

41个版本 (17个破坏性版本)

0.18.0 2024年8月20日
0.17.0 2024年5月25日
0.16.1 2024年3月21日
0.14.1 2023年11月10日
0.8.4 2023年3月29日

#170 in 机器学习

Download history 172/week @ 2024-05-25 9/week @ 2024-06-01 2/week @ 2024-06-08 146/week @ 2024-08-17

每月146次下载

MIT许可证

245KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments Python 197 SLoC Jinja2 75 SLoC

turbocommit

Crates.io Crates.io Crates.io

turbocommit 是一个用Rust编写的CLI工具,它根据 常规提交 规范生成提交消息。它使用git diff来创建准确反映仓库变更的提交消息。

安装

turbocommit 可以通过Rust的包管理器Cargo轻松安装。只需运行以下命令

cargo install turbocommit

请注意,为了使用turbocommit,您需要设置 OPENAI_API_KEY 环境变量。此API密钥是使用OpenAI gpt-3.5-turbo16k 语言模型所必需的,该模型用于由turbocommit生成提交消息。

用法

当您已暂存一些更改时,可以运行 turbocommit(我建议创建一个 tc 快捷方式)

使用 turbocommit 生成常规提交

简短 描述 默认
-n 要生成的选择数量 1
-m --model 要使用的模型 gpt-4o-mini
-d --dry-run 干运行。不会询问AI来完成
-p --print-once 不会在生成时打印令牌
-t 温度(t |0.0 < t < 2.0|) 1.0
-f 频率惩罚(f |-2.0 < f < 2.0|) 0.0

可用模型

请查看 turbocommit --help 获取最新模型列表。

处理长 git diff

在某些情况下,待提交更改的 git diff 可能太长,无法适应由 turbocommit 强制执行的 16384(或 4096)令牌限制,该限制用于生成提交信息。当发生这种情况时,turbocommit 将会提示您,指出 git diff 太长。

为了解决这个问题,turbocommit 提供了一个所有待提交文件的列表,并要求您选择任意数量的文件。然后,该工具将生成一个新的 git diff,该 diff 仅包含所选文件的更改。如果生成的 git diff 加上系统提示信息仍然太长,turbocommit 将重复此过程,直到 git diff 足够短,可以被 AI 模型处理。

这允许您使用 turbocommit 生成传统提交信息,同时确保 git diff 足够短,可以被 AI 模型处理。

使用 turbocommit 获取帮助

要获取有关使用 turbocommit 的帮助,您可以使用 -h--help 选项

$ turbocommit --help

这将显示帮助信息,其中包括如何使用此工具的信息。

依赖关系

~33–48MB
~723K SLoC