PR Diff 浏览 — 看懂改了什么
Diff 是什么
Diff(差异比较)是把两个版本的文件并排展示,标出哪些行变了。在 PR 里,Diff 告诉你这个 PR 改了哪些文件、每个文件改了哪些行。
GitHub 有两种 Diff 视图:
- Unified(合并视图):所有改动和上下文堆在一起,更紧凑
- Split(并排视图):左右对比,左边改前、右边改后
Gloom 默认用 Unified 视图——手机屏幕宽度有限,并排视图太挤。
Diff 视图结构
文件列表
PR 详情页切到 Files Changed Tab,顶部先列出所有被改动的文件:
- 文件名(带路径)
- 变更统计(+N -N 格式,绿色 = 新增行数,红色 = 删除行数)
- 文件状态图标:M(Modified)A(Added)D(Deleted)R(Renamed)
单个文件的 Diff
点开某个文件后:
- 绿色背景行:新增的代码
- 红色背景行:删除的代码
- 灰色背景行:上下文(未变动的行,让你知道改动发生在什么位置)
- 行号:左列是改动前的行号,右列是改动后的行号
大改动的处理
一次改动几十行甚至上百行的文件,Gloom 会自动折叠中间部分——点「Show more」展开完整 Diff。默认展示改动位置上下各 3-5 行的上下文。
怎么用 Diff 做代码审查
虽然 Gloom 不支持写 Review 评论,但你可以在手机上先把所有 Diff 过一遍,标记好问题点,然后回电脑端在 GitHub 网页版里写 Review:
- 用 Gloom 打开 PR 的 Diff 页
- 逐个文件看改动
- 发现问题时记下文件名和行号(Diff 里有行号)
- 切回电脑在 GitHub 网页版的 Review 界面里定位到对应行,写评论
Diff 里的特殊情况
文件被重命名
Gloom 会把重命名的文件标记为 R(Renamed),Diff 里同时展示旧路径和新路径。如果只是改名没改内容,Diff 视图里可能不会展示具体的行变动。
二进制文件
图片(png、jpg)、APK、数据库等二进制文件,Diff 视图里会显示「Binary file changed」提示,不会渲染具体的行变动。
自动生成文件
一些自动生成的文件(package-lock.json、yarn.lock、go.sum)改动可能非常大(几百上千行)。Gloom 会正常渲染 Diff,但建议在电脑上看——手机屏幕上读大段 lock file 的 Diff 很吃力。