开发工具: git 13、使用二分法查找哪一次提交引入了线上bug

场景

当线上有 bug 需要排查 bug 时,要最终定位到是哪个类的哪几行代码造成的这个 bug,此时就需要去看到底是哪一次提交的,是谁对这几行代码的修改造成了这次线上 bug,需要去定位责任人,发生时间等。

如果是比较严重的 case,比如导致用户无法支付,给公司造成了500万的经济损失,这肯定是要追查谁是责任人的。

命令

#开始二分查找
git bisect start

#标注当前这个commit是有bug的
git bisect bad

#标注commit为xxx的是有bug的commit
git bisect bad commitID

#标注commit为xxx的是没有bug的commit
git bisect good commitID

#退出二分查找
git bisect reset

实战

开始二分查找

git bisect start

告诉 git 当前的 commit 是有 bug 的,是一个 bad commit

git bisect bad

96
然后告诉 git,commitID 为 76714e7 的此次 commit 是没问题的。

于是 git 找到了 2 个可能有 bug 的版本,定位到的中间版本是 87058de,对 87058de 的 commi 进行单测,发现了 bug,再次输入 git bisect bad,没有其他节点了,中间版本是 4da3690,测试此次的 commit 结果为 good,于是找到了首次出现 bug 的 commit。

原理

97

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值