diff --git a/README.md b/README.md index e69de29..15ded6b 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,137 @@ +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" + +2. 测试连接 + +autocommit check + +3. 使用 AutoCommit + +1. 先将文件添加到暂存区 +git add . + +2. 使用 AutoCommit 生成提交消息并提交 +autocommit + +3. 或者仅生成消息,不自动提交(预览模式) +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 变化。" + +异步模式 + +对于大量文件或复杂的代码库,工具会自动使用异步模式提高性能。 + +多语言支持 + +通过修改系统提示词,可以支持多种语言的提交消息(如英文、中文、日文等)。 diff --git a/autocommit/cli.py b/autocommit/cli.py index c18760b..65d96ed 100644 --- a/autocommit/cli.py +++ b/autocommit/cli.py @@ -306,11 +306,11 @@ def test_commit(): # 询问用户是否要实际提交 - if Confirm.ask("[yellow]是否使用此消息进行实际提交?[/yellow]"): - git_handler.commit_with_message(message) - console.print("[green]✅ 已提交更改[/green]") - else: - console.print("[dim]测试完成,未实际提交[/dim]") + if Confirm.ask("[yellow]是否使用此消息进行实际提交?[/yellow]"): + git_handler.commit_with_message(message) + console.print("[green]✅ 已提交更改[/green]") + else: + console.print("[dim]测试完成,未实际提交[/dim]") except Exception as e: console.print(f"[red]❌ 测试失败: {e}[/red]")