Go to file
songsenand bae7b2fc19 添加 rich 库支持,用于增强命令行输出显示 2026-01-25 01:54:37 +08:00
autocommit 添加 rich 库支持,用于增强命令行输出显示 2026-01-25 01:54:37 +08:00
.gitignore first commit 2026-01-22 17:12:28 +08:00
.python-version first commit 2026-01-22 17:12:28 +08:00
README.md feat: 添加 README 文档和 CLI 测试逻辑 2026-01-25 01:14:29 +08:00
diagnose.py '20260123' 2026-01-23 14:32:48 +08:00
pyproject.toml feat(cli): 升级 CLI 为 Typer + Rich 版本,新增配置命令与交互式向导 2026-01-25 00:57:10 +08:00
uv.lock feat(cli): 升级 CLI 为 Typer + Rich 版本,新增配置命令与交互式向导 2026-01-25 00:57:10 +08:00

README.md

AutoCommit

一个智能的 Git 提交助手,使用 LLM 自动生成规范的提交消息并提交暂存的文件。

特性

  • 智能生成:使用大语言模型自动分析代码变更,生成专业、规范的提交消息
  • 🔧 高度可配置:支持多种 LLM 提供商OpenAI 兼容 API
  • 🎯 规范遵循:自动生成符合 Conventional Commits 规范的消息
  • 快速便捷:一键生成并提交,提升开发效率
  • 🔍 安全检查:内置配置检查和连接测试
  • 🎨 美观界面:使用 Rich 库提供美观的命令行界面
  • 🔄 异步支持:支持异步操作,响应快速

📦 安装

git clone cd autocommit pip install -e .

🚀 快速开始

  1. 配置(推荐交互式)

交互式配置向导 autocommit config interactive

或直接设置 autocommit config set --api-key "sk-your-api-key" --model "qwen3-14b"

  1. 测试连接

autocommit check

  1. 使用 AutoCommit

  2. 先将文件添加到暂存区 git add .

  3. 使用 AutoCommit 生成提交消息并提交 autocommit

  4. 或者仅生成消息,不自动提交(预览模式) autocommit --dry-run

📖 详细使用说明

基本使用流程

完整工作流示例 git add . autocommit

命令行选项

显示帮助信息 autocommit --help

仅生成消息,不实际提交(预览模式) autocommit --dry-run

指定模型生成 autocommit --model "qwen3-14b"

检查工具状态 autocommit check

测试消息生成 autocommit check --test

⚙️ 配置管理

显示当前配置 autocommit config show

交互式配置向导 autocommit config interactive

设置特定配置项 autocommit config set
--api-key "sk-your-key"
--base-url "https://your-api-endpoint.com/v1"
--model "qwen3-14b"
--timeout 30

清除所有配置 autocommit config clear

配置说明

支持的 LLM 提供商

  • OpenAI
  • DashScope通义千问
  • Ollama
  • 其他兼容 OpenAI API 的服务

配置文件位置 ~/.config/autocommit/config.yaml

示例配置

llm: api_key: "sk-your-api-key" base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1" model: "qwen3-14b" timeout: 30 max_tokens: 1000 temperature: 0.7 extra_body: enable_thinking: false system_prompt: | 你是一个专业开发者,请根据以下 git diff 生成一条符合 Conventional Commits 规范的中文 commit message。 要求50字以内不要解释不要引号只输出 message 本身。 diff: auto_save: true

💡 示例代码变更: def hello_world():

  • print("Hello, World!")
  • print("Hello, OpenAI!") 生成的提交消息feat: update greeting message

🔧 高级功能

自定义提示词

你可以修改系统提示词以适应特定需求:

autocommit config set --system-prompt "你是一个前端开发者,请根据代码变更生成提交消息,重点描述 UI 变化。"

异步模式

对于大量文件或复杂的代码库,工具会自动使用异步模式提高性能。

多语言支持

通过修改系统提示词,可以支持多种语言的提交消息(如英文、中文、日文等)。