最低支持的 Node.js 版本是 v22。请通过
node --version检查你的 Node.js 版本。
sh
npm install -g aicommits
sh
aicommits setup
这将引导您完成以下步骤:
provider 配置项)支持的提供商包括:
对于 CI/CD 环境,您也可以通过配置文件进行设置:
aicommits config set OPENAI_API_KEY="your_api_key_here"
aicommits config set OPENAI_BASE_URL="your_api_endpoint" # 可选,用于自定义端点
aicommits config set OPENAI_MODEL="your_model_choice" # 可选,默认为提供商默认模型
注意: 使用环境变量时,请确保所有相关变量(例如
OPENAI_API_KEY和OPENAI_BASE_URL)一致设置,以避免与配置文件中的配置不匹配。
这将在您的用户主目录下创建一个 .aicommits 文件。
检查已安装的版本:
aicommits --version
要更新到最新版本,请运行:
aicommits update
这将自动检测您的包管理器(npm、pnpm、yarn 或 bun)并使用正确的命令进行更新。
或者,您可以手动更新:
npm install -g aicommits
您可以直接调用 aicommits 为暂存的更改生成提交消息:
git add <files...>
aicommits
aicommits 会将无法识别的标志传递给 git commit,因此您可以传递 commit 标志。
例如,您可以在提交时自动暂存已跟踪文件中的所有更改:
aicommits --all # 或 -a
👉 提示: 如果您觉得
aicommits太长,可以使用aic别名。
--all 或 -a:自动暂存已跟踪文件中的更改以进行提交(默认值:false)--clipboard 或 -c:将选中的消息复制到剪贴板而不是提交(默认值:false)--generate 或 -g:生成的消息数量(默认值:1)--exclude 或 -x:从 AI 分析中排除的文件--type 或 -t:Git 提交消息格式(默认值:plain)。支持 plain、conventional 和 gitmoji--prompt 或 -p:自定义提示以引导 LLM 的行为(例如,特定语言、风格指令)--no-verify 或 -n:提交时绕过 pre-commit 钩子(默认值:false)--yes 或 -y:生成消息后提交时跳过确认(默认值:false)有时推荐的提交消息不是最好的,因此您希望生成几个以供选择。您可以通过传递 --generate <i> 标志一次生成多个提交消息,其中 'i' 是生成的消息数量:
aicommits --generate <i> # 或 -g <i>
警告:这会消耗更多令牌,意味着成本更高。
您可以从三种不同的提交消息格式中选择:
使用 --type 标志指定格式:
aicommits --type conventional # 或 -t conventional
aicommits --type gitmoji # 或 -t gitmoji
aicommits --type plain # 或 -t plain(默认)
如果您的项目遵循特定的提交消息标准,或者您正在使用依赖这些提交格式的工具,此功能会很有用。
您可以使用 --prompt 标志自定义 LLM 的行为,以引导提交消息的生成:
# 用特定语言编写提交消息
aicommits -p "用意大利语写提交消息"
# 关注更改的特定方面
aicommits -p "关注更改的性能影响"
# 使用特定的风格或语气
aicommits -p "使用适合高级开发人员的技术术语"
# 在消息中包含特定细节
aicommits -p "始终提及更改的具体函数名和文件路径"
您还可以通过 prepare-commit-msg 钩子将 aicommits 与 Git 集成。这使您可以像平常一样使用 Git,并在提交前编辑提交消息。
在您想安装钩子的 Git 仓库中:
aicommits hook install
在您想卸载钩子的 Git 仓库中:
aicommits hook uninstall
sh
git add <files...>
git commit # 仅在未传入消息时生成
如果您想编写自己的消息而不是生成,只需传入一个:
git commit -m "我的消息"
Aicommits 将为生成提交消息并将其传回给 Git。Git 会使用配置的编辑器 打开它,供您查看/编辑。
保存并关闭编辑器以提交!
您还可以使用环境变量而不是配置文件来配置 aicommits。
示例:
export OPENAI_API_KEY="sk-..."
export OPENAI_BASE_URL="https://api.example.com"
export OPENAI_MODEL="gpt-4"
aicommits # 使用环境变量
配置设置的解析遵循以下优先级顺序:
要查看所有与默认值不同的当前配置选项,请运行:
aicommits config
这将仅显示非默认的配置值,并且出于安全考虑,API 密钥会被掩码显示。如果没有设置自定义配置,则会显示“(使用所有默认值)”。
要以交互方式选择或更改您的 AI 模型,请运行:
aicommits model
这将:
要更新到最新版本,请运行:
aicommits update
这将:
要检索配置选项,请使用命令:
aicommits config get <key>
例如,要检索 API 密钥,您可以使用:
aicommits config get OPENAI_API_KEY
您也可以通过用空格分隔来一次检索多个配置选项:
aicommits config get OPENAI_API_KEY generate
要设置配置选项,请使用命令:
aicommits config set <key>=<value>
例如,要设置 API 密钥,您可以使用:
aicommits config set OPENAI_API_KEY=<your-api-key>
您也可以通过用空格分隔来一次设置多个配置选项,例如:
aicommits config set OPENAI_API_KEY=<your-api-key> generate=3 locale=en
您的 OpenAI API 密钥或自定义提供商的 API 密钥
自定义 OpenAI 兼容的 API 端点 URL。
用于 OpenAI 兼容提供商的模型。
选定的 AI 提供商。在 aicommits setup 期间自动设置。有效值:openai、togetherai、groq、xai、openrouter、ollama、lmstudio、custom。
默认值:en
用于生成提交消息的区域设置。请查阅 https://wikipedia.org/wiki/List_of_ISO_639-1_codes 中的代码列表。
默认值:1
生成以供选择的提交消息数量。
注意,这将使用更多令牌,因为它会生成更多结果。
对 OpenAI API 的网络请求超时时间(毫秒)。
默认值:10000(10 秒)
aicommits config set timeout=20000 # 20秒
生成提交消息的最大字符长度。
默认值:72
aicommits config set max-length=100
默认值:plain
要生成的提交消息类型。可用选项:
plain:简单的、非结构化的提交消息conventional:包含类型和作用域的约定式提交格式gitmoji:基于表情符号的提交消息示例:
aicommits config set type=conventional
aicommits config set type=gitmoji
aicommits config set type=plain
此 CLI 工具运行 git diff 来获取您最新的所有代码更改,将更改发送到配置的 AI 提供商(默认为 TogetherAI),然后返回 AI 生成的提交消息。
视频即将推出,我将从头开始重建它,向您展示如何轻松构建由 AI 驱动的自己的 CLI 工具。
Hassan El Mghari:@Nutlope
Riccardo Giorato:@riccardogiorato
Hiroki Osame:@privatenumber