Git bisect

最近很少有这种突然眼前一亮的时候,今天有点例外。凑着光棍节的热闹,来介绍一下Git bisect。

事情是这样的,S同学下班之前做了一个commit,break了pipeline。等我们发现的时候已经是n个小时之后,也不知道是哪个commit出的问题。这是一个很常见的问题,常见的做法就是git log然后一个个去checkout。Git bisect就是一个替代人肉搜索的一个命令。

git bisect start #start
git bisect bad #current branch is bad
git bisect good <SHA-1> #some old commit that is good

然后就是

git bisect good

或者

git bisect bad

来告诉git这个commit是否是好的,n个回合之后,就能找出罪魁祸首了。