内容提要
本文介绍了如何通过 Git 钩子和 LLM CLI 自动生成提交信息。设置 `prepare-commit-msg` 钩子后,可以在没有提交信息时,基于代码更改自动生成简洁的提交信息。用户可自定义提示内容,生成的信息将包含更改摘要和原因,支持多种模型。完成设置后,用户只需正常提交,钩子会自动生成提交信息,从而提升开发效率。
延伸解读
全局钩子的便利与配置要点
通过将 prepare-commit-msg 钩子设置为全局,你可以在所有 Git 仓库中自动生成提交信息,无需逐个仓库配置。这需要正确设置 llm 命令和系统提示文件路径,并确保钩子文件可执行。全局钩子简化了工作流,但依赖于环境的一致性,如果 llm 未安装或提示文件缺失,钩子会报错并中止提交。
灵活控制与跳过机制
钩子设计考虑了用户控制:设置 SKIP_LLM_GITHOOK 环境变量可完全禁用自动生成;直接使用 git commit -m 提供信息也会绕过钩子。此外,钩子会检测合并提交并自动跳过,避免干扰。这些机制让用户在需要时轻松接管,平衡了自动化与手动控制。
自定义提示与输出风格
系统提示文件允许你定义提交信息的格式和语气。示例提示要求生成简短摘要、提及更改文件、解释原因、使用项目符号,并鼓励使用表情符号和幽默风格。你可以自由修改提示,调整输出风格,甚至要求模型在无更改时返回空字符串。这提供了高度灵活性,但需注意提示质量直接影响生成结果。
潜在风险与局限性
作者明确指出这是一个“黑客”方案,AI 可能会产生幻觉。虽然目前未发现编造更改,但模型可能添加无关内容,如虚构的问题编号。因此,生成的提交信息应经过人工审查,不可完全依赖。此外,钩子依赖外部 llm 命令和网络(除非使用本地模型),可能引入延迟或失败风险。
Q&A
如何使用 LLM 自动生成 Git 提交信息?
可以通过设置 `prepare-commit-msg` 钩子和 LLM CLI 来自动生成提交信息,用户只需正常提交,钩子会根据代码更改生成信息。
用户如何自定义生成的提交信息格式?
用户可以在提示文件中自定义内容,包括更改摘要、原因和表达风格,例如使用表情符号和幽默的语气。
设置 LLM 自动生成提交信息的步骤是什么?
步骤包括安装 LLM、创建提示文件、配置 Git 钩子,并设置全局钩子目录。
生成的提交信息包含哪些内容?
生成的提交信息通常包括更改摘要、具体更改和原因,支持多种表达风格。
如何跳过 LLM 提交信息生成?
可以通过设置 `SKIP_LLM_GITHOOK` 环境变量来跳过 LLM 提交信息生成。
LLM CLI 支持哪些模型?
LLM CLI 支持多种模型,包括本地模型和其他机器学习模型。