如果能写一个返回 0/非 0 的检查命令,git bisect 可以自动跑完整个二分过程,不用每次手动判断。环境:Git 2.25+,仓库里需要有一个能复现问题的脚本。
例如测试脚本 check.sh:
#!/usr/bin/env bash
set -e
./tests/smoke.sh
给它执行权限后,在已知正常和异常的提交之间运行:
git bisect start
git bisect bad HEAD
git bisect good v1.2.0
git bisect run ./check.sh
git bisect reset
脚本返回 0 会被当作 good,非 0 会被当作 bad,最后 Git 会指出首次出问题的提交。检查命令最好只依赖仓库本身,别把网络请求或不稳定的外部服务放进去,不然二分结果会飘。