作为一名程序员,我们都热爱创造,热衷于用代码改变世界。但不得不承认,在日常的开发流程中,总有一些“烦人”的小事,比如写文档、写注释,以及——写 git commit 信息。这些任务虽然重要,但往往会打断我们心流,让人觉得索然无味。

在AI技术日新月异的今天,我们完全可以将这些重复性的文字工作交给AI来完成。今天,我就向大家隆重介绍一款能让你从这些繁琐任务中解脱出来的神器——gitai

gitai 是什么?

gitai 是一款集成了AI能力的git命令行工具集,它能帮你自动生成 commit 信息、创建 pull request,甚至是生成 tag 的发布说明。它的目标只有一个:将你从繁琐的文字工作中解放出来,让你专注于真正重要的代码创造。

依赖配置: llm

gitai 的强大功能依赖于 llm 这款命令行工具。llm 为我们提供了与各种大型语言模型(LLM)交互的统一接口。因此,在使用 gitai 之前,我们需要先对 llm 进行简单的配置。

安装 llm

你可以通过 pipbrew 来安装 llm

 使用 pip
pip install llm

 使用 Homebrew
brew install llm

配置 API Key

llm 需要使用 API Key 来访问各大厂商的语言模型。以 OpenAI 为例,你可以通过以下命令配置你的 API Key:

llm keys set openai

然后,根据提示输入你的 OpenAI API Key。

llm 也支持其他多种模型,比如 gemini, claude 等。你可以通过安装相应的插件来使用它们:

 安装 gemini 插件
llm install llm-gemini

 配置 gemini API Key
llm keys set gemini

选择默认模型

为了方便起见,你可以设置一个默认使用的模型。例如,将 gpt-4o-mini 设置为默认模型:

llm models default gpt-4o-mini

这样,gitai 在执行时就会默认使用 gpt-4o-mini 模型来生成内容。

完成了 llm 的配置后,我们就可以开始享受 gitai 带来的便利了。

安装

安装 gitai 非常简单,只需要一行命令:

brew install tenfyzhong/tap/gitai

gitai 的“三板斧”

gitai 主要提供了三个核心工具,每一个都能在你的git工作流中发挥巨大作用。

1. ai-commit-msg: 会呼吸的 commit 信息

你是否曾为了一个 commit 信息而绞尽脑汁?ai-commit-msg 就是你的救星。它是一个 git hook,在你执行 git commit 时,它会自动分析你的代码变更,并生成一条清晰、规范的 commit 信息。

全局配置 (推荐)

为了让所有项目都能享受到这个便利,推荐你进行全局配置:

  1. 创建全局 hooks 目录:

    mkdir -p ~/.git-hooks
    
  2. 配置 git 使用该目录:

    git config --global core.hooksPath ~/.git-hooks
    
  3. ai-commit-msg 链接到 hooks 目录:

    ln -s "$(which ai-commit-msg)" ~/.git-hooks/prepare-commit-msg
    

配置完成后,你就可以像往常一样使用 git commitgitai 会在后台默默为你准备好 commit 信息,你只需要检查并保存即可。

项目内配置

如果你只想在特定的项目中使用,可以进入项目.git/hooks目录,然后执行ln -s "$(which llm-commit-msg)" ./prepare-commit-msg

2. aipr: 一键生成 Pull Request

Pull Request 的标题和描述同样是一件耗时的事情。aipr 工具可以根据你的分支和代码变更,自动为你生成 Pull Request 的标题和内容。

使用方法

aipr [options]

aipr 支持 gh pr create/edit 的所有参数,你可以用它来指定目标分支、远程仓库等。比如:

 为当前分支创建一个pr, 合并到main分支
aipr -B main

aipr 会自动为你生成标题和描述,并打开编辑器让你确认。

3. aitag: 智能生成 Release Tag

发布新版本时,需要为 tag 编写发布说明。aitag 可以帮你自动完成这项工作。它会分析从上一个 tag 到现在的代码变更,并生成一份详尽的发布说明。

使用方法

aitag [OPTIONS] TAG_NAME [COMMIT]

比如,要创建一个名为 v1.0.0 的 annotated tag:

aitag v1.0.0

aitag 会为你生成 tag 的说明,让你的版本发布更加专业。

高级定制

gitai 还提供了强大的定制功能。你可以通过修改 ~/.config/gitai/prompts 目录下的 prompt 文件,来调整 gitai 生成内容的风格和格式,让它更符合你或团队的规范。

同时,gitai 也支持通过环境变量进行配置,例如 GITAI_MODELGITAI_LANGUAGE 等,让你对 gitai 的行为有更精细的控制。

总结

gitai 是一款能显著提升 git 工作效率的工具。它将AI的强大能力融入到我们日常的开发流程中,让我们从繁琐的文字工作中解放出来。如果你也厌倦了手写 commit 信息和 Pull Request,不妨试试 gitai,让AI成为你的贴心 git 助手吧!