Workflows
多人协作时的同步节奏
围绕多人并行开发,建立一套先 fetch、再观察、再整合的同步节奏,减少 pull 惊喜和共享历史误操作。
- 要把命令组合成稳定流程的团队成员
- 需要处理协作顺序和分支边界的人
- 知道 fetch / pull / push / branch 的基本作用
- 能理解一条分支为什么会分叉
- 照抄流程却没确认当前分支关系
- 在共享分支上用错整合方式
多人协作里最容易出问题的,往往不是某条命令不会用,而是同步动作太随手。
“先拉再说”在单人仓库里可能只是习惯问题,但在多人并行开发里,往往会把观察、整合、改写历史三件事混在一起。
origin/main当前分支状态本地未推送提交
mergerebase暂不整合
关键不是动作快,而是每一步都能解释。
为什么不建议把一切都交给 pull
pull 本身不是错误命令,但它把两类动作绑定到一起了:
- 获取远端变化
- 改动当前分支
当团队协作变复杂时,你最需要的是“先看清楚”,而不是“先让当前分支动起来”。
如果你不能用一句话解释“当前分支相比上游分支到底多了什么、少了什么”,那就还不适合直接 pull。多人协作时,fetch-first 是一种认知减压手段。
一个团队可执行的同步顺序
git fetch origin
git status
git log --oneline --graph --decorate --all -n 20
git branch -vv
这一轮检查的目标是回答 4 个问题:
- 我当前分支和哪个上游分支对应
- 本地有没有尚未推送的提交
- 远端是不是已经前进了
- 双方是 fast-forward 关系,还是已经分叉
只有这几个问题都清楚了,后面的 merge、rebase 或暂缓整合才有意义。
什么时候用 merge,什么时候用 rebase,什么时候先不动
适合 merge 的情况
- 团队约定共享分支只追加历史
- 你不想改写已存在的本地提交表达
- 当前更看重保留真实整合点
适合 rebase 的情况
- 当前是个人分支或 PR 分支
- 你想在提交共享前整理历史
- 团队默认 feature branch 在合并前保持线性
适合先不整合的情况
- 你还没看清远端变更影响范围
- 当前工作树里仍有未整理的改动
- 你正处在上下文切换或事故排查阶段
“先不动”不是拖延,而是避免把还没理解的问题直接带进当前分支。
哪些时刻最该坚持这条节奏
- 多个人同时改同一模块
- 当前分支已经累积了本地提交
- 准备发起或更新 PR 前
- 刚结束长时间中断,准备重新进入上下文
- 主分支最近合并频繁,风险上升
这些时刻的共同点是:同步动作一旦带来冲突或意外历史,就会放大认知负担。
一个适合团队长期执行的最小同步协议
可以很简单:
- 默认先
fetch - 用
status和branch -vv观察当前分支关系 - 在共享分支上避免随手 rebase
- 在 PR 分支上是否 rebase,遵守团队约定
- 同步后如果历史说不清,就停下来重新检查
这个协议的价值不是限制大家,而是让每个人对“同步之后会发生什么”有共同预期。
常见误区
“我一直用 pull,也没出过事”
很多风险不是每次都会触发。它的问题是把观察和修改绑定在一起,让问题一旦出现就更难解释。
“只要我会解决冲突,就不用在意同步节奏”
冲突只是表面代价。真正大的成本是历史变得难解释、回滚变得困难、PR 上下文变得混乱。
“多人协作最重要的是统一命令”
统一命令当然有帮助,但更重要的是统一判断逻辑。
大家都知道什么时候先看、什么时候再动,才是真正降低摩擦。
用两个分支模拟远端已经前进、本地也有提交的情境,练习先观察再决定整合方式。
git switch main git pull --ff-only git switch -c feature/sync-routine echo local >> notes.txt git commit -am "local work" # 让另一个同事分支或另一份克隆推进 main步骤
- 先执行 `git fetch origin`
- 用 `git branch -vv` 看当前分支和上游差异
- 用 `git log --oneline --graph --decorate --all -n 20` 看是否分叉
- 判断当前更适合 merge、rebase 还是先停手整理工作树
- 记录你为什么做这个选择
- fetch 不会直接改动当前分支
- 你能清楚区分本地提交和远端新提交
- 同步决策会从“习惯动作”变成“有理由的动作”
- 团队沟通会更容易解释
- fetch 完立刻习惯性 pull
- 没看 `branch -vv` 就直接整合
- 明明是共享分支,却按个人分支思路直接 rebase
一个最值得坚持的原则
同步动作要尽量可解释。
如果同步之后你已经解释不清当前历史为什么长这样,那就说明节奏太快、观察太少了。