三分钟教你学Git(十三) - 二分查找

使用GitBisect定位Bug
本文介绍如何使用GitBisect快速定位引入Bug的首次提交。通过二分查找法,可以在较少的操作次数内确定出现问题的提交点。文章还提到了如何通过编写脚本来实现这一过程的自动化。

比方说你收到了错误报告,然后你知道前几天明明是好的。可是这几天有好多新的commit被部署了。那么我们怎么迅速的找到第一个引入Bug的commit呢?


我们能够使用git bisect,git利用二分查找法迅速找到第一个坏的commit,下边看看详细怎么用就明确了。


我们首先告诉git我们要開始binary search了。

# git bisect start

然后我们告诉git当前的commit是一个坏的提交。

#git bisect bad

然后我们再告诉git我们已知的一个好的提交,这样子git就知道開始和结束的位置了,然后git会reset到中间的commit。

#git bisect good ad5e0

这时候我们就位于中间到一个commit。我们能够编译执行看看执行结果。假设是好的。我们告诉git是好的。

#git bisect good

这时候git会在后半段中找到还有一个中间commit,然后reset到此commit。我们编译执行看看执行结果。假设是坏的,我们告诉git是坏的。

#git bisect bad

就这样,你能够在lg(n)次找到第一个坏的commit。git找到后会给你打印出此commit的信息。


我们找到这个commit之后,不要忘记退出bisect。

# git bisect reset


我们能够看到尽管比較方便。但还不是全自己主动的,假设你能够写一个脚本执行当前的程序,假设验证正确返回0,验证错误返回1。那么此过程就能够全然自己主动,git能够帮你自己主动找出第一个坏的commit。


# git bisect start bad_commit good_commit

# git bisect run test-error.sh


 

原文:http://blog.youkuaiyun.com/hongchangfirst/article/details/45536701

作者:hongchangfirst

hongchangfirst的主页:http://blog.youkuaiyun.com/hongchangfirst




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值