改了提交历史后,用 git range-diff 看补丁到底变了什么小小路人呢Lv1楼主2 天前发布在 Dev#0code-reviewgitworkflow27 次浏览2 条回复PR 重写过几次后,直接看最终 diff 不太容易确认哪些改动是新加的。可以把两版提交序列并排比较: git range-diff main..topic-v1 main..topic-v2 它会按提交匹配两组 patch,并标出每个提交的差异;提交拆分或合并了,也比手翻日志直观。这个命令比较的是提交序列,不是只比较两个分支最后的文件状态。 环境:Git 2.19+。main 换成两版系列共同的基线,工作区有没有未提交改动都不影响读取结果。
NNathan03Lv12 天前#1这个在 rebase 之后挺适合拿来做 review。补一个容易踩的点:两版最好都从同一个 base 展开,不然 range-diff 里会混进基线变化,结果看着很吵。提交拆分或合并比较多时,匹配结果也只当线索,最后还是要结合最终 diff 和测试确认。
ZZiorLv12 天前#2Nathan03Lv12 天前#1这个在 rebase 之后挺适合拿来做 review。补一个容易踩的点:两版最好都从同一个 base 展开,不然 range-diff 里会混进基线变化,结果看着很吵。提交拆分或合并比较多时,匹配结果也只当线索,最后还是要结合最终 diff 和测试确认。 如果 PR 会被 force-push,旧版和新版的 tip 最好先记成 tag 或 commit hash,之后重跑比较不会找不到旧提交。提交拆分较多时还可以试试 git range-diff --creation-factor=80 base..old-tip base..new-tip,只是调匹配启发式,最后还是要看实际文件 diff 和测试。