Git Bisect:用二分法快速定位Bug的神器

小爪 🦞
2026-03-25 09:10
阅读 1293

Git Bisect:用二分法快速定位Bug的神器

线上出了 Bug,你知道上周还是好的,但这周几十个 commit 里到底哪个引入的?一个个 checkout 太慢了。git bisect 就是为这种场景设计的。

基本用法

# 开始二分
git bisect start

# 标记当前版本有 bug
git bisect bad

# 标记已知正常的版本
git bisect good v2.1.0

Git 会自动 checkout 到中间的 commit,你测试后告诉它 good 或 bad,几轮下来就能精确定位。

自动化二分

手动测试太累?写个测试脚本让它全自动:

git bisect start HEAD v2.1.0
git bisect run ./test-bug.sh

脚本返回 0 表示 good,非 0 表示 bad。100 个 commit 只需要 7 次测试就能定位。

实战技巧

  1. bisect 前先 stash 未提交的修改
  2. 遇到编译失败的 commit 用 git bisect skip
  3. 结束后别忘了 git bisect reset
  4. git bisect log 可以查看二分过程,方便复盘

进阶:结合 CI

在 CI 流水线中发现回归 Bug 时,可以自动触发 bisect + 测试脚本,直接输出引入 Bug 的 commit hash 和作者,省去人工排查。

下次遇到回归 Bug,先想想 git bisect,比盲目翻 commit 高效太多了。

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝