GIM 2.0 发布:真正让 AI 提交消息可定制、可控、可项目级优化

大家好,GIM(Git Intelligence Message)2.0 正式发布啦!

GIM 是一个 基于变更内容自动生成高质量 Git 提交消息的命令行工具 ,它利用 AI 帮你写更规范、更语义化、可读性更强的 commit message。相比 1.x 系列,2.0 是一次核心能力升级,重点解决了 AI 提交生成在真实项目中最常见的定制与一致性痛点。

官方网站:https://git-intelligence-message.pages.dev/

仓库地址:https://github.com/davelet/git-intelligence-message


GIM 2.0 核心更新能力

1. 本地项目 Prompt 支持(.gim 目录)

2.0 版本允许在 Git 仓库根目录创建一个 .gim 文件夹,用于存放项目 私有 Prompt 模板

复制代码
your-project/
├── .git/
├── .gim/
│   ├── diff_prompt
│   └── subject_prompt

这意味着:

  • 各个项目可以定义自己的 AI 提示模板
  • 不同项目无需共享或修改全局配置
  • 团队规范、提交风格可以直接写在仓库里,团队成员天然统一

2. 命令行临时覆盖 Prompt

在之前版本,Prompt 模板只能通过全局配置文件维护,无法灵活覆盖;

而 2.0 引入命令参数:

复制代码
--diff-prompt <STRING>
--subject-prompt <STRING>

例如:

bash 复制代码
gim --diff-prompt "专注变更安全影响分析" \
    --subject-prompt "生成遵循规范化格式的提交标题"

这让你在一次提交中临时覆盖 AI 指引,非常适合:

  • 临时写"安全相关 commit"
  • 某次提交需要特别格式
  • 试验新的提示策略

Prompt 优先级

  1. 命令行(最高)
  2. 项目级 .gim 目录
  3. 全局 config
  4. 内置默认

项目层统一提交规范

在项目根目录:

bash 复制代码
mkdir .gim
echo "分析变更时突出安全性影响" > .gim/diff_prompt
echo "按规范化格式生成提交标题" > .gim/subject_prompt

所有团队成员无需各自配置,全程统一。

临时覆盖 Prompt

bash 复制代码
gim --diff-prompt "侧重性能改进" \
    --subject-prompt "性能优化提交"

推荐用法

复制代码
gim 根据暂存区的文件变更内容生成提交消息并提交
gim -a 自动暂存尚未暂存的变更,并生成提交消息提交
gim -p 将本次暂存的变更内容合并到上一次提交中,并根据这两次变更生成提交消息提交(就是--amend)
gim -ap 相当于gim -a后gim -p,先暂存,再合并提交
gim -t <SUB> 指定提交的标题。不指定-t参数的话,标题是根据消息内容自动总结出来的
gim update 更新软件版本,也可以brew upgrade git-intelligence-message
gim ai -m <model> -k <apikey> -u <url> -l <language> 设置AI参数。这个命令是前置命令,没有设置的话,上面携带参数的执行都会失败。-l有默认值,是英语,可以不用提供;-u是api调用的地址,软件内置了一些地址,可以查看 https://github.com/davelet/git-intelligence-message?tab=readme-ov-file#built-in-model-support ,如果模型名称能匹配上前缀也可以不提供。1.3.2版本开始,如果gim ai命令没携带参数,将输出当前配置
gim -v 任何命令都可以增加-v参数,用于查看命令的详细执行过程,v表示 verbose
gim prompt 查看当前提示词。增加--edit可以编辑提示词,增加--prompt <P>用于指定编辑文件
更详细的用法可以通过-h查看帮助信息。比如

gim -h
gim ai -h
gim update -h
gim prompt -h
相关推荐
瑞码空间1 小时前
git知识点黄金笔记
笔记·git·elasticsearch
----云烟----1 小时前
Git 提交忽略某些文件方法
git
切糕师学AI4 小时前
如何查看已合并到 master 分支的所有分支?Git 分支清理指南
大数据·git·elasticsearch
DevUp10 小时前
一个管「引」,一个管「抄」:Submodule 和 Subtree 到底差在哪
git·前端工程化
lingran__12 小时前
Git 完全指南(三):远程仓库与标签管理
开发语言·git·gitee·ssh·团队协作·远程仓库·分布式版本控制
小灰灰搞电子12 小时前
Rust std::vec::Vec<T>动态数组:所有相关 API 全面介绍
开发语言·rust
学习星球12 小时前
CodeWhale 深度剖析:从 DeepSeek-TUI 到 40.9K Star 的 Rust 终端编程 Agent
开发语言·后端·rust
小灰灰搞电子14 小时前
Rust 相关容器(集合)详解
开发语言·容器·rust
lingran__1 天前
Git 完全指南(二):分支管理
git·分支管理·版本控制·团队协作·多人开发·git flow