拿下技术面上传简历

一个 10 人团队,main 分支每天合并约 30 个 PR,长期使用 squash merge。现在线上出现一个回归,怀疑是过去 3 周内约 400 个提交中的某一个引入的,需要用 git bisect 定位。你负责这次排查。请说明你现在会怎么做、这次排查会遇到什么麻烦、以及排查完你是否要改团队的分支/合并策略,依据是什么。

工程与系统设计代码与工程3-5 年知识点 1 个

面试官在考什么

判断他是否理解 squash / rebase / merge 三种合并策略对可追溯性、二分定位、回滚粒度的影响,能否把工作流决策和线上可运维性挂钩,而不是只讲个人偏好。

Git 工作流

回答框架 · 前两步

  1. 现状的麻烦:squash 把一个 PR 的多个提交压成一个,bisect 的粒度从「提交」变成「PR」;如果某个 PR 里混了重构加行为改动,二分到一个几百行的 diff 也无法直接定位。
  2. 当次做法:在 main 的 400 个提交上 git bisect,约 9 步(log2 400 ≈ 9);关键是每轮要有一个能自动判断好坏的脚本(git bisect run),否则人工验证 9 次成本极高,所以前提是有可靠的复现脚本或单测;可以先用 git log -- <path> 缩小到相关模块。

还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题