Fuckmit - AI 智能 Git 提交信息生成器

November 11, 2025 · View on GitHub

一个 Rust 编写的命令行工具,通过集成多种 AI 提供商(OpenAI、Azure OpenAI、DeepSeek、Qwen 等),自动分析代码变更并生成符合规范的 Git 提交信息。

安装

二进制发布版

适用于 Windows、Mac OS(10.12+) 或 Linux,您可以在 这里 下载二进制发布版。

Homebrew

brew tap mingeme/tap
brew install fuckmit

从 crates.io 安装

cargo install fuckmit

从源码安装

如果您已安装 Rust 工具链(包括 cargo),可以直接使用以下命令从 GitHub 仓库安装:

cargo install --locked --git https://github.com/mingeme/fuckmit

或者手动克隆并构建:

# 克隆仓库
git clone https://github.com/mingeme/fuckmit.git
cd fuckmit

# 构建项目
cargo build --release

# 安装二进制文件
cargo install --path .

支持的 AI 提供商

提供商状态支持的模型
OpenAIGPT-3.5, GPT-4, 等
Azure OpenAIGPT-3.5, GPT-4, 等
DeepSeekDeepSeek Chat
QwenQwen Turbo, 等

环境配置

环境变量配置

OpenAI

export OPENAI_API_KEY="your-openai-api-key"
export OPENAI_MODEL="gpt-4"  # 可选,默认为 gpt-3.5-turbo
export OPENAI_BASE_URL="https://api.openai.com/v1"  # 可选

Azure OpenAI

export AZURE_OPENAI_API_KEY="your-azure-api-key"
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com"
export AZURE_OPENAI_DEPLOYMENT="your-deployment-name"
export AZURE_OPENAI_API_VERSION="2024-02-15-preview"  # 可选

DeepSeek

export DEEPSEEK_API_KEY="your-deepseek-api-key"
export DEEPSEEK_MODEL="deepseek-chat"  # 可选
export DEEPSEEK_BASE_URL="https://api.deepseek.com/v1"  # 可选

Qwen

export QWEN_API_KEY="your-qwen-api-key"
export QWEN_MODEL="qwen-turbo"  # 可选
export QWEN_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"  # 可选

全局设置

export LLM_MODEL="deepseek/deepseek-chat"  # 必选
export LLM_TIMEOUT_SECONDS="30"  # 可选,超时设置
export LLM_MAX_RETRIES="3"  # 可选,重试次数

提交信息规则

export FUCKMIT_RULES="使用中文提交信息"  # 可选,自定义提交信息生成规则

注意--rules 命令行参数的优先级高于 FUCKMIT_RULES 环境变量。

交互模式

export FUCKMIT_INTERACTIVE="true"  # 可选,默认启用交互模式
export FUCKMIT_CANDIDATES="3"  # 可选,生成候选消息数量(1-5,默认:3)

使用方法

基本用法

# 生成并提交 Git 提交信息
fuckmit

# 仅显示生成的提交信息,不实际提交
fuckmit --dry-run

# 使用提供商/模型格式
fuckmit --model openai/gpt-4

# 通过命令行参数添加自定义规则
fuckmit --rules "使用中文提交信息"

# 或通过环境变量设置规则(适用于所有调用)
export FUCKMIT_RULES="使用中文提交信息"
fuckmit

# 添加变更上下文
fuckmit --context "修复了用户登录的bug"

# 同时使用规则和上下文
fuckmit --rules "使用简洁的描述" --context "重构了数据库连接逻辑"

# 自定义 AI 参数
fuckmit --max-tokens 1000 --temperature 0.5

交互模式

交互模式允许您从多个 AI 生成的提交信息候选中选择,并在提交前进行编辑。

# 启用交互模式,默认生成 3 个候选
fuckmit i

# 生成 5 个候选供选择
fuckmit i --candidates 5

# 使用环境变量默认启用
export FUCKMIT_INTERACTIVE=true
fuckmit

命令行参数

  • -d, --dry-run: 仅显示生成的提交信息,不执行提交
  • --candidates <NUM>: 交互模式下生成的候选数量(1-5,默认:3)
  • -m, --model <MODEL>: 指定 AI 模型或使用 "provider/model" 格式
  • -r, --rules <RULES>: 自定义提交信息生成规则
  • -c, --context <CONTEXT>: 提供变更的额外上下文信息
  • --max-tokens <NUM>: 生成消息的最大令牌数(默认:8192)
  • --temperature <NUM>: AI 生成的温度参数,范围 0.0-2.0(默认:0.7)

许可证

本项目基于 MIT 许可证开源 - 详见 LICENSE 文件。