码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-08 17:24:31      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

比如说你收到了错误报告,然后你知道前几天明明是好的,但是这几天有好多新的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.csdn.net/hongchangfirst/article/details/45536701

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst




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

标签:

原文地址:http://blog.csdn.net/hongchangfirst/article/details/45536701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!