git bisect 二分查找有问题的提交
来源:互联网 发布:linux培训ujiuye 编辑:程序博客网 时间:2024/05/16 01:04
二分查找
想必大家都玩过猜数字游戏吧:一个人在1到100的数字中随意选择一个,另外一个人来猜,小孩子总是一个挨着一个地猜, 懂得折半查找的大人总是获胜者。Git 提供的 git bisect 这一命令,就是采用这样的二分查找快速地在提交中定位 Bug, 少则几次,多则十几次就会定位到引入Bug的提交。
首先执行下面命令启用二分查找。
$ git bisect start
标记一个好版本。下面的命令使用 tag(v2.7.0)来标记 Git 2.7.0 版本是好版本,换做40位的提交号也行。
$ git bisect good v2.7.0
标记 Git 2.8.0-rc0 是一个坏版本。注意:马上就是见证奇迹的时刻。
$ git bisect bad v2.8.0-rc0 Bisecting: 297 revisions left to test after this (roughly 8 steps) [563e38491eaee6e02643a22c9503d4f774d6c5be] Fifth batch for 2.8 cycle
看到了么?当完成对一个好版本和一个坏版本的标记后,Git 切换到一个中间版本(
563e384
),并告诉我们大概需要8步可以找到元凶。在这个版本下执行前面的测试操作:
$ make -j8 && make install $ git --version git version 2.7.0.297.g563e384 $ http_proxy=bad_proxy no_proxy=* git ls-remote http://server.name/git/repo.git fatal: unable to access 'http://server.name/git/repo.git/': Couldn't resolve proxy 'bad_proxy'
对这个版本进行标记。
这是一个坏版本:
$ git bisect bad Bisecting: 126 revisions left to test after this (roughly 7 steps) [e572fef9d459497de2bd719747d5625a27c9b41d] Merge branch 'ep/shell-command-substitution-style'
我们可以机械地重复上面4、5的步骤,直到最终定位。但是人工操作很容易出错。如果对版本标记错了,把 good 写成了 bad 或者相反, 就要执行 git bisect reset
重来。(小窍门:git bisect log 可以显示 git bisect 标记操作日志)
转自:点击打开链接
0 0
- git bisect 二分查找有问题的提交
- Git bisect 二分查找, 确定问题版本
- git 二分查找 (git bisect)
- 查找问题的利器 - Git Bisect
- 查找问题的利器 - Git Bisect
- 二分查找--bisect
- Git二分查找,定位问题提交
- Git 强大的二分 debug 功能 - git bisect
- python实现二分查找及bisect模块的简介
- python数组查找算法---bisect二分查找插入
- git bisect
- git bisect
- git bisect
- git bisect
- 5.5 bisect--数组的二分算法
- git版本回溯,找到有问题的提交
- git bisect快速定位版本的错误
- bisect模块二分插入
- ROS
- 重磅!支付宝小程序悄然上线_分享能力更强大!ofo小程序怒怼摩拜小程序
- centos7安装python开发环境(python3,postgresql,sublime,supervisor)
- 机器学习敲门砖:任何人都能看懂的TensorFlow介绍
- 字符串学习(1)
- git bisect 二分查找有问题的提交
- 【转载】如何解决双击运行jar的问题
- 通过Web来管理VirtualBox
- 审批中心审批服务API
- 后缀表达式的计算器Java实现
- 我看到的最全的git命令
- [matlab]过一点与椭圆的切线
- Actor model
- HashMap和HashSet