Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uk0/aicommit-shell
"AI Commit Message Tool uses AI to automatically generate concise and professional Git commit messages, which you can then edit and confirm interactively." | "AI Commit Message Tool 使用人工智能自动生成简洁专业的 Git 提交信息,然后您可以交互式地编辑并确认。"
https://github.com/uk0/aicommit-shell
ai-commits chatgpt gpt4 openai shell
Last synced: about 11 hours ago
JSON representation
"AI Commit Message Tool uses AI to automatically generate concise and professional Git commit messages, which you can then edit and confirm interactively." | "AI Commit Message Tool 使用人工智能自动生成简洁专业的 Git 提交信息,然后您可以交互式地编辑并确认。"
- Host: GitHub
- URL: https://github.com/uk0/aicommit-shell
- Owner: uk0
- License: apache-2.0
- Created: 2023-07-25T05:23:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-26T10:42:11.000Z (over 1 year ago)
- Last Synced: 2023-07-26T11:27:35.958Z (over 1 year ago)
- Topics: ai-commits, chatgpt, gpt4, openai, shell
- Language: Shell
- Homepage:
- Size: 1.76 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Git Commit Generator
该脚本利用了 OpenAI 的 GPT-3.5-turbo 模型来生成专业且简洁的 Git Commit 信息。
## Quick Start
```bash
wget -O /usr/local/bin/cmm https://raw.githubusercontent.com/uk0/aicommit-shell/main/cmm.sh && chmod +x /usr/local/bin/cmm
```## 功能
- 根据 Git 状态生成详细的 commit 信息
- 忽视 .gitignore 文件内列出的文件名
- 使用 GPT-3.5-turbo 生成的描述以帮助分析文件名以生成 commit 信息
- 每个 commit 信息最长不超过 128 个字符,一次最多生成 5 条信息## 使用方法
1. 首先,需要在您的环境变量中设置 `OPENAI_API_KEY`,这是你从 OpenAI 平台获取的 API 密钥。
```bash
export OPENAI_API_KEY=your-api-key
```2. 运行脚本。脚本会获取当前目录下的 Git 状态,然后发送请求到 OpenAI 平台,最后返回生成的 commit 信息。
```bash
# 你可以将脚本放到 /usr/local/bin/cmm
# cp ./cmm.sh /usr/local/bin/cmm && chmod +x /usr/local/bin/cmm
# 在任意包含git管理的项目下使用 cmm
❯ cmm
Welcome to the AI Commit Message Tool!
Generating commit message...
chore(main): Rename prompt.txt to ai_git_commit_plugin.txt
- Rename file: prompt.txt to ai_git_commit_plugin.txt
- Modify existing file: cmm.sh"
Do you want to use this commit message? [Y/n]
```3. 输出结果。脚本会输出生成的 commit 信息,你可以直接使用这些信息作为你的 Git commit message。
## 注意事项
- 确保在你的工作目录下运行该脚本,因为它会获取当前目录下的 Git 状态。
- 脚本运行需要 `jq` 和 `curl`,`vim`。如果你的系统中没有这三个工具,需要先进行安装。
- 该脚本目前只支持英文的文件名分析。## 示例(old)
![demo.gif](demo.gif)
假设在你的工作目录下的 Git 状态如下:
```bash
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
(use "git push" to publish your local commits)Changes to be committed:
(use "git restore --staged ..." to unstage)
renamed: prompt.txt -> ai_git_commit_plugin.txtChanges not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: cmm.sh```
运行脚本后,可能会返回如下 commit 信息:
![img.png](img.png)
### prompt
参考1 https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
参考2 https://zhuanlan.zhihu.com/p/182553920#### 目前还不是很完善,还是会存在一些小的问题,提示词相关的还是有一些问题。