借用AI和Commitizen编写更清晰易懂的Git提交信息

借用AI和Commitizen编写更清晰易懂的Git提交信息

撰写清晰、一致的 Git 提交信息是一件费力不讨好的事,尤其是在有多名开发人员编写代码并为项目做出贡献的团队中。我们都见过类似“fixed stuff”或“update code”这样的提交,让每个人都在猜测到底改了什么。

这就是 Commitizen 的用武之地。Commitizen 就是为解决这个问题而设计的一款工具,它为编写结构化的提交信息提供了一种共享格式。可以把它想象成一个友好的指南,确保团队中的每个人都能说同样的“提交语言”。

在本文中,我们将探讨 Commitizen 如何强化良好的提交习惯。我们还将进一步将 Commitizen 与 AI 助手配对使用,使其从繁琐的工作变成工作流程的无缝组成部分。

安装Commitizen

首先,我们需要用 NPM 安装 cz-git

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npm i -g commitizen cz-git
npm i -g commitizen cz-git
npm i -g commitizen cz-git

这将允许我们在任何目录下全局访问 cz CLI 工具。

配置文件

然后,我们需要添加并设置 Commitizen 配置文件。我们可以运行

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo '{ "path": "cz-git" }' > ~/.czrc
echo '{ "path": "cz-git" }' > ~/.czrc
echo '{ "path": "cz-git" }' > ~/.czrc

AI配置

cz-git 同时支持 OpenAI API 和 Ollama。在本例中,我们将使用 Ollama,原因有以下几点:

  1. 丰富的模型选项。
  2. 本地运行。
  3. 免费。

要创建 Git 提交信息,一般建议使用具有代码理解能力的模型,比如 qwen2.5-coder, starcoder2

你可以随意使用其中任何一种模型。在本文的示例中,我们将使用 qwen2.5-coder 。运行以下命令下载它。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ollama pull qwen2.5-coder
ollama pull qwen2.5-coder
ollama pull qwen2.5-coder

请注意,这将下载的是默认模型,该模型包含 7B 参数和 4.5GB。如果你的电脑资源较少,我建议下载较小的模型,如 1.5B 的模型,它只有约 900MB。您可以使用以下命令下载该模型:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ollama pull qwen2.5-coder:1.5b
ollama pull qwen2.5-coder:1.5b
ollama pull qwen2.5-coder:1.5b

下载完成后,我们需要更新 ~/.czrc 中的配置,指定使用 AI 以及模型来生成提交消息、端点和令牌。由于我们使用的是 Ollama,所以令牌可以留空,因为它不需要令牌。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"$schema": "https://raw.githubusercontent.com/Zhengqbbb/cz-git/refs/heads/main/docs/public/schema/cz-git.json",
"path": "cz-git",
"aiModel": "qwen2.5-coder",
"apiEndpoint":"http://127.0.0.1:11434/v1",
"openAIToken":" ",
"useAI": true
}
{ "$schema": "https://raw.githubusercontent.com/Zhengqbbb/cz-git/refs/heads/main/docs/public/schema/cz-git.json", "path": "cz-git", "aiModel": "qwen2.5-coder", "apiEndpoint":"http://127.0.0.1:11434/v1", "openAIToken":" ", "useAI": true }
{
"$schema": "https://raw.githubusercontent.com/Zhengqbbb/cz-git/refs/heads/main/docs/public/schema/cz-git.json",
"path": "cz-git",
"aiModel": "qwen2.5-coder",
"apiEndpoint":"http://127.0.0.1:11434/v1",
"openAIToken":" ",
"useAI": true
}

生成提交信息

要生成提交信息,首先要确保我们已经暂存了文件。否则,请运行 git add,然后运行以下命令即可:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
czg
czg
czg

您需要选择更改类型。是功能、修复还是其他更新?

选择更改类型

一旦你选择了一种,它就会开始生成信息。

生成提交信息

如果您对生成的信息满意,请选择“Y”并点击 Enter。它将立即为您创建并推送提交。

小结

人工智能在过去几年中取得的进步令人惊叹。它变得越来越容易获得,也越来越经济实惠。我们可以用它来让那些曾经觉得是苦差事的工作变得更简单、更快捷。

我强烈建议你试一试!

评论留言