基于git-bisect来快速找到bug所在提交记录

前言

有时候,遇到一些无法一目了然的问题,需要确定该问题被引入到代码库中的时间节点和修改范围,再一步步定位到是哪段逻辑。这种时候,git-bisect就可以大大降低工作量。

git-bisect介绍

git bisect是一个用于快速找出引入bug的提交的工具。它的基本原理是使用二分法在提交历史中搜索,每次检出一个中间的提交,让用户测试是否有bug,然后根据用户的反馈缩小搜索范围,直到找到第一个有bug的提交。

使用方式

我们现在来看看一个提交记录:

我们现在假设问题代码是在7566这个提交中引入的,我们需要排查从087f到069d范围内到底是哪里引入的bug。

那么我们之间使用:

git bisect start 087f54660 609d68538

进行该操作后,git会自行二分回滚到某个版本的代码,然后进行测试,查看问题是否依旧存在。如果不存在了,就输入:

git bisect good

如果问题还存在,就输入:

git bisect bad

持续如此,git会自动找到问题所在的提交记录:

工作原理

我们可以通过上面的实例,对着提交记录来看看git-bisect的查找原理:

结束语

通过git-bisect来定位到问题所在的提交,在针对性的去排查代码,这样对于棘手的问题,可以大大提高解决的效率。

猜你喜欢

转载自blog.csdn.net/mevicky/article/details/130728102
今日推荐