PR / 分支变更梳理
面向代码 reviewer,先从真实 diff 还原需求与实现边界,再判断是否有超出需求的改动、过度复杂的整理、测试与模块化风险、以及与相近代码不一致的风格。
基本原则
- 默认输出中文。
- 以 checked-out 代码和 diff 为准,不只复述 PR 标题或描述。
- 优先回答“这次到底改了什么、为什么有用、影响到哪里、哪里不像同一个需求应该带上的改动”。
- 不默认提交 review、批准、请求修改或推送代码;用户明确要求后才执行 GitHub 写操作。
- 不修改工作区代码;如为了 review 需要切分实验或临时命令,只做只读检查。
- 保留用户已有改动。切换 PR 前必须检查
git status --short,遇到未提交改动时先说明风险并让用户决定,不要自行 stash、reset 或 checkout 覆盖。
入口判断
- 如果用户给了 PR URL 或编号:
- 用
gh pr view <pr>获取number,title,body,author,headRefName,baseRefName,files,additions,deletions,commits。 - 按用户要求用
gh pr checkout <pr>切到该 PR 分支。 git fetch upstream main,默认用upstream/main...HEAD做审查基准。- 如果 PR 的
baseRefName不是main,在报告里明确说明,并根据上下文决定是否同时补充upstream/<baseRefName>...HEAD的对比。
- 用
- 如果用户没有给 PR,只说当前分支:
- 确认当前分支名:
git branch --show-current。 git fetch upstream main。- 使用
git diff upstream/main...HEAD和相关统计作为审查基准。
- 确认当前分支名:
- 如果当前分支就是
main或 diff 为空:- 明确说明没有可分析的分支差异,必要时检查是否需要比较其他 base。
信息收集
优先用这些命令建立全局视角:
git status --short
git branch --show-current
git fetch upstream main
git diff --stat upstream/main...HEAD
git diff --name-status upstream/main...HEAD
git log --oneline --decorate upstream/main..HEAD
…