使用大模型处理 git diff
生成 commit msg 的流程如下:
- 获取 git diff 信息:
- 可以使用
git diff > git.diff
将 diff 信息写入文件。 - 可以使用
git diff | clip
(Windows) 将 diff 信息复制到剪贴板。
git diff 获取的是没有提交到暂存区的更改,如果想要获取已经提交到暂存区的更改,可以使用 git diff --cached
。
- 准备提示词:
- 提示词需要包含 commit 规则 [^1]。例子如下:
用户会输入 git diff,请你生成 commit msg,可以根据更改内容生成一些备注
我的 commit 规则:
module.exports = {
rules: {
'type-enum': [
2,
'always',
[
'feat', // 新功能
'fix', // 修复
'docs', // 文档变更
'style', // 代码格式
'refactor', // 重构
'perf', // 性能优化
'test', // 增加测试
'chore', // 构建过程或辅助工具的变动
'revert', // 回退
'build', // 打包
],
],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never'],
'scope-empty': [0],
'scope-case': [0],
'subject-full-stop': [0],
'subject-case': [0],
'header-max-length': [0],
},
};
- 发送给大模型: 将
git diff
信息和提示词一起发送给大模型,获取 commit msg。 - 使用 Cherry Studio (可选):
- 可以使用 Cherry Studio 创建 commit msg 生成助手
具体效果
把指令保存为 alias
在 windows 中:
git config --global alias.gc "!git diff | clip"
git config --global alias.gcc "!git diff --cached | clip"
使用
git gc
git gcc