用 AI 根据 diff 写 PR 描述:变更说明、测试方式与风险点一次写清
评审者最需要知道三件事:改了什么、为什么改、怎么验证。把 git diff 和你对动机的一两句说明一起交给 AI,让它按固定模板生成 PR 描述,再由你补上它不可能知道的背景(需求来源、讨论结论),能明显缩短写描述的时间。
准备输入
git diff main...HEAD --stat > /tmp/stat.txt
git diff main...HEAD > /tmp/diff.txt
git log main..HEAD --oneline > /tmp/log.txt
--stat帮助 AI 了解改动范围;- 提交记录提供变更顺序;
- 粘贴前检查 diff 里有没有密钥、内部地址等敏感内容。
提示词模板
请根据以下信息写一份 Pull Request 描述(Markdown)。
动机(我写的):【例如:修复导出 CSV 时中文乱码,用户反馈】
提交记录:【粘贴 log】
改动统计:【粘贴 stat】
diff:【粘贴 diff】
格式:
## 变更摘要(3–5 条,按重要性排序)
## 动机
## 实现说明(只写评审需要知道的关键决策)
## 测试方式(列出可以复现的步骤;diff 中新增的测试单独列出)
## 风险与回滚
要求:只描述 diff 中真实存在的改动;无法从 diff 判断的写“【待作者补充】”;不要夸大影响范围。
处理大 diff
- 先只给
--stat,让 AI 按模块分组; - 再逐个模块贴 diff,生成各自的说明;
- 最后合并成一份描述。
- 如果 diff 过大,本身就是信号:考虑拆成多个 PR。
需要人工把关的部分
- 动机和背景:AI 只能从代码推测,需求来源和取舍要你写;
- 测试方式:确认列出的步骤真的跑过;
- 风险判断:数据库迁移、配置变更、权限相关的改动,务必人工补充影响范围;
- 措辞:把“优化了性能”这类空话改成具体说明,或删掉。
示例输出(示意)
## 变更摘要
- 导出 CSV 时写入 UTF-8 BOM,修复 Excel 打开中文乱码
- 新增导出编码的单元测试
## 风险与回滚
- 依赖 CSV 首行字段名的下游脚本可能受 BOM 影响【待作者补充:是否有此类脚本】
- 回滚:还原 export.py 即可,无数据迁移
搭配使用
提交信息也可以用类似方式检查,参考 AI 辅助写提交信息;涉及安全的改动,评审时可对照 AI 编程安全注意事项。日常场景示例见 程序员用 AI 排查报错。