Workflows

评审前同步主线

在发起评审前先同步主线并检查差异范围,减少 reviewer 面对过期基底、重复冲突和历史噪声的成本。

适合谁看
  • 要把命令组合成稳定流程的团队成员
  • 需要处理协作顺序和分支边界的人
前置知识
  • 知道 fetch / pull / push / branch 的基本作用
  • 能理解一条分支为什么会分叉
常见风险
  • 照抄流程却没确认当前分支关系
  • 在共享分支上用错整合方式

如果一个分支已经和主线分叉太久,reviewer 看到的内容就会混入很多噪声:已经被主线解决的差异、过期基底带来的冲突上下文、以及不必要的 merge 历史。
评审前同步主线,本质上是在替 reviewer 先做一轮清理。

评审前同步的真正价值先更新你对主线的认知,再整合主线变化,最后重新检查 diff。这样 reviewer 看到的是当前问题,而不是旧基底遗留的噪声。
先确认
主线最新状态当前分支差异review 目标范围
review 获得
更新的基底更干净的 diff更少上下文噪声
这一步不是礼貌动作,而是 review 质量的一部分。

为什么评审前一定要做这一步

review 的成本不只是看代码,还包括理解代码处在哪个基底上。
如果分支和主线漂移太久,reviewer 会被迫同时处理:

  • 已经过期的差异
  • 本该你自己先解决的同步冲突
  • 和当前任务无关的历史噪声

这会直接稀释对真正业务改动的注意力。

推荐流程

git fetch origin
git rebase origin/main
git diff --stat origin/main...

如果团队不希望改写个人分支,也可以:

git fetch origin
git merge origin/main

关键不是必须 rebase,而是要把“更新主线认知”和“重新确认 PR 范围”都做完。

为什么这套流程更稳

因为它固定了一个关键顺序:

  1. 先更新你对主线的认知
  2. 再把主线变化整合进当前分支
  3. 最后重新检查 diff 是否还是你打算送审的那部分

这个顺序最大的价值,是把“同步动作”变成“review 准备动作”,而不是额外负担。

关键检查点

在真正发起评审前,至少确认:

  1. 最近主线更新已经纳入
  2. diff 范围仍然是你预期的那部分改动
  3. 最近几个提交没有明显噪声
  4. 当前分支如果共享,是否符合团队对 rebase 的约定

建议配合:

git branch -vv
git diff --stat origin/main...
git log --oneline --decorate -8

这一步能帮 reviewer 省什么

  • 少看无关差异
  • 少处理已经过期的冲突上下文
  • 更容易聚焦真正的业务改动
  • 更快判断这次改动是否真的 ready for review

什么时候同步前就该先停下来

有时“评审前同步”会暴露一个更根本的问题:

  • 分支太大
  • 主题太混
  • 提交边界太乱

这时不应该只是同步完就直接提 review,而应该先回到“整理提交和边界”那一步。

同步完主线后,一定重新看一次 diff

很多人会在同步之后直接发起 review,默认认为“我只是把主线纳进来了”。但整合动作本身可能已经改变 diff 结构,如果不重新看一遍,你很容易把额外噪声也送进 review。

常见误区

等 reviewer 提出来再同步主线

这会把本该自己解决的问题转嫁给 reviewer。

同步完主线后不再重新看 diff

整合动作可能已经改变了 diff 结构,最好重新确认一次。

把评审前同步当成“顺手做一下”

这一步其实是评审质量的一部分。

发起 review 前先问自己
  1. 当前分支和主线的关系我解释得清楚吗?
  2. 同步之后的 diff 还是不是我要 reviewer 看的那部分?
  3. 最近提交会不会让 reviewer 先处理历史噪声,而不是看业务问题?

接下来建议继续学什么

  1. Feature branch collaboration
  2. Squash vs rebase merge
  3. Fetch vs pull