如何使用git bisect定位代码中的BUG
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容主要讲解"如何使用git bisect定位代码中的BUG",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用git bisect定位代码中的BU
千家信息网最后更新 2025年12月01日如何使用git bisect定位代码中的BUG先通过
然后 使用
告诉 git 这个 commit(刚才找出来确定代码是OK的 commit hash) 是 OK 的
告诉 git 当前最后一个 commit 代码是有 BUG 的
如果当前代码 test 不通过 就标记为 bad
反之如果当前代码 test 通过 就标记为 good
然后退出 git bisect 模式
本篇内容主要讲解"如何使用git bisect定位代码中的BUG",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用git bisect定位代码中的BUG"吧!
背景
你可能遇到过这种情况, 昨天下班前把模块开发完了, 单元测试验证通过, git commmit 盖上电脑 开开心心下班啦 ????
第二天啥上午来了,继续开发,提交了几个 commit ,下午部署了一个版本,发现昨天测试通过的代码出现了 BUG ????
这个时间你会怎么做, 可能的翻出现 BUG 代码文件的 git log 一翻发现 有20个 commit ????
此时你的心情可能是崩溃的 ????
告别人肉排查 bad commit 借助 git bisect 找 BUG ✌️
具体方法
先通过 git log 命令 找到你确定代码是 OK 的 git hash 再找到你当前出现 BUG 的 git hash
然后 使用 git bisect start 开始咱们的奇妙 debug 之旅 ????
开始对 commit 做标记
告诉 git 这个 commit(刚才找出来确定代码是OK的 commit hash) 是 OK 的 git bisect good 5d5dba7
告诉 git 当前最后一个 commit 代码是有 BUG 的 git bisect bad 692ac39
git 会进行二分查找
然后开始开始 test 验证当前 hash 的 commit 的代码是不是 OK 的
如果当前代码 test 不通过 就标记为 bad git bisect bad
反之如果当前代码 test 通过 就标记为 good git bisect good
反复的进行 test 和标记 直到找出那个 bad commit 为止
然后退出 git bisect 模式 git bisect reset
附上操作流程图 
附上官方文档 Git Docs
附上二分查找可视化动画 binary search visualization
附上我的命令行操作记录
wujunze@Mac: ~/monkey/code/monkey-api develop $ git bisect start [20:31:46] wujunze@Mac: ~/monkey/code/monkey-api develop $ git logg [20:31:50] wujunze@Mac: ~/monkey/code/monkey-api develop $ git bisect good 16e91a8 [20:31:54] wujunze@Mac: ~/monkey/code/monkey-api develop $ git logg [20:31:59] wujunze@Mac: ~/monkey/code/monkey-api develop $ git bisect bad 692ac39 [20:32:04]Bisecting: 9 revisions left to test after this (roughly 3 steps)[cd1a0814fe21aa3e06020efb5aa4118ead17acce] not filter wujunze@Mac: ~/monkey/code/monkey-api cd1a081 $ git bisect bad [20:32:07]Bisecting: 4 revisions left to test after this (roughly 2 steps)[63bf3176854a4fe112d612cee3f6bacce9e77e7d] fix merge wujunze@Mac: ~/monkey/code/monkey-api 63bf317 $ git bisect good [20:32:11]Bisecting: 2 revisions left to test after this (roughly 1 step)[798239a0397c52127c721b8b84bb430b5fd0e83b] debug wujunze@Mac: ~/monkey/code/monkey-api 798239a $ git bisect bad [20:32:14]Bisecting: 0 revisions left to test after this (roughly 0 steps)[5d5dba7c3fc947768cc609493de9808f3d9cf635] fix assert logic wujunze@Mac: ~/monkey/code/monkey-api 5d5dba7 $ git bisect bad [20:32:23]5d5dba7c3fc947768cc609493de9808f3d9cf635 is the first bad commitcommit 5d5dba7c3fc947768cc609493de9808f3d9cf635Author: wujunzeDate: Tue Oct 29 18:20:36 2019 +0800 fix assert logic:040000 040000 b5d77b6ac82d8427d1bc3a9db2213f6c10ea0d63 3f49c18b6569282f7fa2a2c935b9ba73d6d0fbc0 M app wujunze@Mac: ~/monkey/code/monkey-api 5d5dba7 $ git bisect reset [20:32:27]Previous HEAD position was 5d5dba7 fix assert logicSwitched to branch 'develop'Your branch is up to date with 'origin/develop'. wujunze@Mac: ~/monkey/code/monkey-api develop $ [20:36:38]
到此,相信大家对"如何使用git bisect定位代码中的BUG"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
代码
标记
定位
内容
命令
方法
学习
开发
测试
验证
实用
更深
奇妙
之旅
人肉
兴趣
动画
单元
完了
官方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
完美世界服务器信息连接错误
美国国家临床指南数据库网址
郴州软件开发工程师在哪学
搭建飞桨ocr服务器
数据库的局部逻辑结构
三亚数据库安全审计
扣丁学堂软件开发
中国各城市气温数据库
csv的文件怎么导入数据库
数据库字段名是指什么
vb显示数据库数据
互联网大会先进科技成果
工业互联网络安全厂商
网络安全研究文章
sybaseiq数据库版本
vba读取数据库二进制图片
数据库运行dos命令
数据库索引的数据结构
星科数据库陨石000263-2
软件开发有技术
市南区分销软件开发服务公司
制定网络安全质量目标是研发
数据库对工具照
浩景种植数据库
加载怪物数据库
数据库中注解也称为什么
虚拟云服务器主机
满足网络安全法的网络设备
服务器bios界面没有字体
全球船舶数据库