GPTCommit 是一个自动化的 Git 提交工具。它使用 OpenAI 的 GPT-4o 模型分析代码更改并生成提交注释,从而简化了代码提交过程。
- 自动检测未提交的更改
- 使用 GPT-4o 模型生成提交注释
- 自动执行
git add .
和git commit -m {注释}
-
克隆本仓库到你的本地机器:
git clone https://github.com/zhufengme/GPTCommit
-
进入项目目录:
cd GPTCommit
-
确保你已安装
jq
,用于处理 JSON 数据。如果没有安装,可以使用以下命令安装:sudo apt-get install jq
在运行脚本之前,你需要进行一些配置。
-
打开
gptcommit.sh
文件:nano gptcommit.sh
-
将以下行中的
your_openai_api_key_here
替换为你的 OpenAI API 密钥:OPENAI_API_KEY="your_openai_api_key_here"
-
[可选] 设置你要使用的代理(proxy),留空则遵循 curl 的默认行为(使用 HTTPS_PROXY 环境变量或 .curlrc 中的设置):
CURL_PROXY=""
-
[可选] 如果需要修改 OpenAI API endpoint,可以编辑以下行:
OPENAI_API_ENDPOINT="https://api.openai.com/v1/chat/completions"
你可以根据需要将其更改为不同的 API endpoint。
-
[可选] 默认生成的提交注释是英文,可以编辑以下行来修改默认语言:
LANGUAGES="en"
你可以根据需要将其更改为不同的语言,如zh为中文。
-
确保你的 Git 工作目录中有未提交的更改。
-
运行脚本:
./gptcommit.sh
-
脚本将自动执行以下步骤:
- 检查工作目录状态
- 获取未提交的更改
- 调用 OpenAI 的 API 生成提交注释
- 添加更改到暂存区并提交
该脚本支持两个可选的命令行参数:
-
--lang
:临时指定生成的提交注释的语言。例如:./gptcommit.sh --lang=zh
该命令生成中文的提交注释。
./gptcommit.sh --lang=zh,en
该命令生成中英文的提交注释。
-
--notes
:为提交注释生成添加额外的说明。例如:./gptcommit.sh --notes="Focus on performance improvements"
该命令将指示AI在生成提交注释时特别关注与性能相关的更改。
你可以一起使用这些参数:
./gptcommit.sh --lang=zh,en --notes="Highlight security updates"
该命令将生成中英文的提交注释,并重点关注与安全相关的更改。
为了在任何目录中都能方便地使用该脚本,你可以将脚本添加到系统的 PATH 路径中:
-
将脚本复制到一个在 PATH 中的目录,例如
/usr/local/bin
:sudo cp gptcommit.sh /usr/local/bin/gptcommit sudo chmod +x /usr/local/bin/gptcommit
-
现在你可以在任何 Git 仓库目录中通过运行以下命令来使用脚本:
gptcommit
- 确保你的 OpenAI API 密钥具有足够的配额来处理请求。
- 该脚本假设你已经在当前 Git 仓库中工作,并且有合适的权限执行提交操作。
- 请确保你的网络连接稳定,特别是在需要通过代理访问 OpenAI API 的情况下。
欢迎提交问题和功能请求!如果你想贡献代码,请 fork 本仓库并提交 pull request。
本项目遵循 GPL 许可。