2-9 情景六:快速定位历史的bug提交(二分查找bisect)
场景描述
项目突然出现了一个 bug,但不清楚是哪次提交引入的。Git 提供了 bisect 命令通过二分查找快速定位问题提交。
使用方法
# 开始二分查找
git bisect start
# 标记当前版本有 bug
git bisect bad
# 标记一个确定没有 bug 的版本
git bisect good v1.0.0
# Git 自动 checkout 到中间提交,你测试后标记
git bisect good # 没问题
git bisect bad # 有 bug
# 重复直到找到第一个有问题的提交
# Git 输出:xxx is the first bad commit
# 结束,回到原来的分支
git bisect reset
bash
自动化 bisect
git bisect run npm test
bash
测试通过返回 0(good),失败返回非 0(bad),bisect 自动完成查找。
参考资源
↑