# llmgit **Repository Path**: cg33/llmgit ## Basic Information - **Project Name**: llmgit - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-16 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # llmgit - AI 增强的 Git 工具 llmgit 是一个基于大语言模型的 Git 增强工具,提供智能化的 Git 操作体验。 ## 功能特性 - 🤖 **AI 生成 Commit Message**: 自动分析代码变更,生成专业的 commit message - 🔍 **AI 代码审查**: 使用 AI 审查 commit,发现潜在问题和改进建议 - 📝 **AI 解释 Diff**: 用通俗易懂的语言解释代码变更的含义 - 📋 **自动生成 CHANGELOG**: 基于 commit 历史自动生成 CHANGELOG - 🔀 **PR/MR 描述生成**: 基于分支差异自动生成 Pull Request 描述 - 🌍 **国际化支持**: 完整的多语言支持,默认英文,支持中文 - 🔄 **完全兼容 Git**: 所有原生 Git 命令都可以正常使用 ## 安装 ### 从源码构建 ```bash cd projects/llmgit make build # 二进制文件将在 build/llmgit ``` 或者直接使用 Go: ```bash go build -o build/llmgit ``` ### 安装到系统 ```bash make install # 或者手动将 build/llmgit 复制到 PATH 路径 ``` ## 初始化 首次使用前需要初始化配置: ```bash llmgit ai init [model] ``` 示例: ```bash # 使用 OpenAI llmgit ai init openai sk-xxx gpt-4 # 使用 DeepSeek llmgit ai init deepseek sk-xxx deepseek-chat # 使用通义千问 llmgit ai init qwen sk-xxx qwen-turbo ``` 支持的 provider 包括: - `openai` - OpenAI - `deepseek` - DeepSeek - `qwen` - 通义千问 - `claude` - Anthropic Claude - `gemini` - Google Gemini - 等等(运行 `llmgit ai providers` 查看完整列表) ## 使用方法 ### 语言选择 llmgit 支持多语言。默认情况下,所有输出都是英文。你可以通过以下方式切换到中文: ```bash # 通过环境变量设置语言 export LLMGIT_LANG=zh # 或使用 --lang 选项(仅影响当前命令) llmgit --lang zh ai commit # 或使用 -l 简短形式 llmgit -l zh ai commit ``` **支持的语言:** - `en` (默认) - 英文 - `zh` / `cn` / `chinese` - 中文 ### 列出支持的 Provider 查看所有支持的 LLM provider: ```bash # 列出所有 provider llmgit ai providers # 或使用别名 llmgit ai list-providers # 使用中文输出 llmgit --lang zh ai providers ``` ### AI 生成 Commit Message ```bash # 暂存文件后,使用 AI 生成 commit message git add . llmgit ai commit # 使用中文生成 commit message llmgit ai commit --lang zh # 或使用简短形式 llmgit ai commit -l zh # 也可以传递额外的 git commit 参数 llmgit ai commit --no-verify ``` **Commit Message 格式:** 生成的 commit message 遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范: ``` (): [可选的详细说明] generated by llmgit ``` **类型 (Type):** - `feat` - 新功能 - `fix` - 修复 bug - `docs` - 仅文档变更 - `style` - 代码格式变更(不影响代码运行) - `refactor` - 代码重构 - `perf` - 性能优化 - `test` - 添加或更新测试 - `build` - 构建系统或外部依赖变更 - `ci` - CI 配置变更 - `chore` - 其他不修改源代码或测试的变更 - `revert` - 回滚之前的 commit **作用域 (Scope)** 是可选的,可以省略。 **Commit Message 语言选项:** - `en` (默认) - 英文 - `zh` / `cn` / `chinese` - 中文 注意:`commit` 命令的 `--lang` 选项仅影响生成的 commit message 的语言,不影响工具本身的输出语言。 **自定义 Commit Prompt 模板:** 你可以自定义用于生成 commit message 的 prompt 模板: ```bash # 直接设置自定义 prompt 模板 llmgit ai set-prompt "你是一个 Git commit message 生成器。分析代码变更并使用{language}生成 commit message。代码变更:{diff}" # 从文件设置 prompt llmgit ai set-prompt prompt.txt # 查看当前 prompt 模板 llmgit ai set-prompt # 模板支持占位符: # - {language} - 将被替换为语言指令(Use English/Use Chinese) # - {diff} - 将被替换为实际的代码 diff ``` 如果没有设置自定义 prompt,将使用默认模板。 ### AI 审查 Commit ```bash # 审查最新的 commit llmgit ai review # 审查指定的 commit llmgit ai review HEAD~1 llmgit ai review abc123 ``` ### AI 解释 Diff ```bash # 解释工作区的变更 llmgit ai explain # 解释特定文件的变更 llmgit ai explain src/main.go # 显示 diff 并附带 AI 解释 llmgit ai diff ``` ### 自动生成 CHANGELOG ```bash # 生成自上次 tag 以来的 CHANGELOG llmgit ai changelog # 生成指定范围的 CHANGELOG llmgit ai changelog v1.0.0..HEAD # 生成并保存到文件 llmgit ai changelog --output CHANGELOG.md # 生成不同格式 llmgit ai changelog --format json llmgit ai changelog --format yaml ``` **功能特点:** - 自动按类型组织 commit(feat, fix, docs 等) - 按版本标签或日期分组 - 支持 Markdown、JSON 和 YAML 格式 - 可直接保存到文件 ### PR/MR 描述生成 ```bash # 生成当前分支相对于 main 的 PR 描述 llmgit ai pr main # 生成指定分支的 PR 描述 llmgit ai pr feature-branch --base main # 生成并复制到剪贴板 llmgit ai pr main --copy ``` **功能特点:** - 清晰总结变更内容 - 包含影响范围和测试建议 - 使用格式化的 PR 模板结构 - 支持复制到剪贴板(macOS、Linux、Windows) ### 其他 Git 命令 所有其他 Git 命令都会直接转发给原生 Git: ```bash llmgit status llmgit log llmgit branch # ... 等等 ``` ## 配置 配置文件 `config.json` 会自动保存在 `~/.llmgit/` 目录下。配置文件包含: ```json { "provider": "openai", "api_key": "sk-xxx", "model": "gpt-4", "commit_prompt": "可选的自定义 commit prompt 模板" } ``` **注意**: 配置文件包含敏感信息,请确保妥善保管。 `commit_prompt` 字段是可选的。如果设置了,它将用作生成 commit message 的模板。模板支持占位符:`{language}` 和 `{diff}`。 ## 项目结构 ``` llmgit/ ├── main.go # 主程序入口 ├── Makefile # 构建配置 ├── internal/ │ ├── config/ # 配置管理 │ │ └── config.go │ ├── git/ # Git 操作封装 │ │ └── git.go │ └── i18n/ # 国际化支持 │ └── i18n.go ├── build/ # 构建输出目录 ├── README.md # 英文文档 └── README_CN.md # 中文文档 ``` ## 开发 本项目基于 [llmhub](https://github.com/gotoailab/llmhub) 库,支持多种大语言模型提供商。 ## License MIT