找不到 Bug 什么时候引入的肿么办?git bisect 来拯救!

查看原文

git-bisect 一个用二分法帮你找到 bug 的 git 内置工具。它的基本原理是标记提交日志的两头一边好,一边坏,它帮你跳到正中间的提交,让你来标记是好的还是坏的,如此往复直到找到那个点,这个流程正是二分法。它的使用方法如下:

  • git bisect start: 开始
  • git bisect bad: 标记当前是引入了 bug 的提交
  • git bisect good v0.1.0: 标记 v0.1.0 标签对应的提交还没有引入 bug
    • 这时候 git-bisect 会自动跳转到 v0.1.0 ... HEAD 正中间的那个提交
  • git bisect bad: 继续标记,直到找到拐点
  • git bisect reset: 退出

值得一提的是,这个过程还是手动的,假设提供了一个自动检测的脚本,你可以通过 git bisect run my_script arguments 自动找到这个坏掉的提交。这个脚本返回 0 意味着好提交,非 0 意味着坏提交。

提问:my_script 的返回码是 125 的时候会发生什么事?为甚么选择 125 这个数字?