在一长串提交里排查回归,不用挨个 checkout。git bisect 会用二分法不断缩小范围。
环境:Git 2.25+,先准备一个确认正常的提交,例如 abc1234:
git bisect start
git bisect bad HEAD
git bisect good abc1234
Git 会自动切到中间某个提交。跑完验证后,坏的标记 git bisect bad,正常的标记 git bisect good,重复几次就会指出最早的可疑提交。结束后记得回到原状态:
git bisect reset
如果项目有稳定的测试命令,还能用 git bisect run npm test 自动判断;测试命令需要以退出码 0 表示通过。