Workflows
评审前同步主线
在发起评审前先同步主线并检查差异范围,减少 reviewer 面对过期基底、重复冲突和历史噪声的成本。
- 要把命令组合成稳定流程的团队成员
- 需要处理协作顺序和分支边界的人
- 知道 fetch / pull / push / branch 的基本作用
- 能理解一条分支为什么会分叉
- 照抄流程却没确认当前分支关系
- 在共享分支上用错整合方式
如果一个分支已经和主线分叉太久,reviewer 看到的内容就会混入很多噪声:已经被主线解决的差异、过期基底带来的冲突上下文、以及不必要的 merge 历史。
评审前同步主线,本质上是在替 reviewer 先做一轮清理。
主线最新状态当前分支差异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 范围”都做完。
为什么这套流程更稳
因为它固定了一个关键顺序:
- 先更新你对主线的认知
- 再把主线变化整合进当前分支
- 最后重新检查 diff 是否还是你打算送审的那部分
这个顺序最大的价值,是把“同步动作”变成“review 准备动作”,而不是额外负担。
关键检查点
在真正发起评审前,至少确认:
- 最近主线更新已经纳入
- diff 范围仍然是你预期的那部分改动
- 最近几个提交没有明显噪声
- 当前分支如果共享,是否符合团队对 rebase 的约定
建议配合:
git branch -vv
git diff --stat origin/main...
git log --oneline --decorate -8
这一步能帮 reviewer 省什么
- 少看无关差异
- 少处理已经过期的冲突上下文
- 更容易聚焦真正的业务改动
- 更快判断这次改动是否真的 ready for review
什么时候同步前就该先停下来
有时“评审前同步”会暴露一个更根本的问题:
- 分支太大
- 主题太混
- 提交边界太乱
这时不应该只是同步完就直接提 review,而应该先回到“整理提交和边界”那一步。
很多人会在同步之后直接发起 review,默认认为“我只是把主线纳进来了”。但整合动作本身可能已经改变 diff 结构,如果不重新看一遍,你很容易把额外噪声也送进 review。
常见误区
等 reviewer 提出来再同步主线
这会把本该自己解决的问题转嫁给 reviewer。
同步完主线后不再重新看 diff
整合动作可能已经改变了 diff 结构,最好重新确认一次。
把评审前同步当成“顺手做一下”
这一步其实是评审质量的一部分。
- 当前分支和主线的关系我解释得清楚吗?
- 同步之后的 diff 还是不是我要 reviewer 看的那部分?
- 最近提交会不会让 reviewer 先处理历史噪声,而不是看业务问题?
接下来建议继续学什么
Feature branch collaborationSquash vs rebase mergeFetch vs pull