找不到 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 这个数字?