比方说你收到了错误报告,然后你知道前几天明明是好的。可是这几天有好多新的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


最新文章

  1. asp.net自定义404页面
  2. C#:字段与属性
  3. hdu2647 拓扑序
  4. zoj 2334 Monkey King/左偏树+并查集
  5. DSP中常用的C语言关键字
  6. lintcode:买卖股票的最佳时机 I
  7. 页面资源预加载(Link prefetch)功能加速你的页面加载速度
  8. Java开发环境安装
  9. PKU 3667 Hotel(线段树)
  10. Csharp多态的实现(抽象类)
  11. mysql表设计
  12. HTML目录:
  13. highcharts折线图-柱形图等
  14. MySQL 8.0.13 下载安装教程
  15. dax学习
  16. Array Division CodeForces - 808D (构造+实现)
  17. 潭州课堂25班:Ph201805201 django 项目 第十课 自定义错误码,完成图片验证码,用户是否被注册功能 (课堂笔记)
  18. Python初始编码-3
  19. 五种常见的ASP.NET安全缺陷
  20. linux指令tar笔记

热门文章

  1. 3.1 Java以及Lucene的安装与配置
  2. linux上的vim永久显示行号
  3. Heine-Borel定理
  4. FreeFileSync
  5. [LeetCode] Sort List 排序 sort
  6. Windows下VS2013创建与使用动态链接库(.dll)
  7. Video for Linux Two API Specification Revision 2.6.32【转】
  8. 如何在natTable表格上添加双击事件
  9. vim注释颜色更改
  10. HDU 6298.Maximum Multiple-数学思维题(脑子是个好东西,可惜我没有) (2018 Multi-University Training Contest 1 1001)