首页 > 其他分享 >git bisect 查找引入bug的提交记录

git bisect 查找引入bug的提交记录

时间:2023-11-24 22:11:48浏览次数:38  
标签:git 记录 bisect 代码 bad 提交 bug

它的原理就是将代码提交的历史,按照两分法不断缩小定位。就是将代码历史一分为二,确定问题出在前半部分,还是后半部分,不断执行这个过程,直到范围缩小到某一次代码提交。

step 1: 查找提交记录, 找到可能引入错误的提交记录区间

git log --pretty=oneline

step 2: 开始使用git bisect 启动二分查找

git bisect start <latest> <oldest>
git bisect start HEAD <oldest> # 从当前记录开始的话,使用HEAD 代替commit id

step 3: 使用git bisect good 或者 git bisect bad 进行标记

git bisect good
git bisect bad

  • 此时代码被回退到两个提交记录中间的一个记录,然后测试代码
  • 如果代码依旧有bug,则使用 git bisect bad 进行标记, 代码会继续回退到区间的1/4处的那条记录
  • 如果代码bug消失, 则使用 git bisect good 进行标记, 代码会继续回退到区间的 3/4处的那条记录
  • 然后继续测试代码,执行git bisect good 或者 git bisect bad 直到找到出现问题的那条记录

step 4: 使用git bisect reset 恢复代码到最近的那条记录

git bisect reset

标签:git,记录,bisect,代码,bad,提交,bug
From: https://www.cnblogs.com/xiaodi-js/p/17854896.html

相关文章

  • [Codeforces] CF1728C Digital Logarithm
    题目传送门很奇妙的一道题,我想到了正解,但是又没有完全想到题意我们定义\(f(x)\)表示取出\(x\)在十进制下的位数。(如\(f(114514)=6,\;f(998244353)=9\))。形式化讲,就是\(f(x)=\lfloor\log_{10}x\rfloor+1\)。给定两个数组\(a\)和\(b\),求执行若干次以......
  • error:0308010C:digital envelope routines::unsupported
    执行:npmrunserve 出现:error:0308010C:digitalenveloperoutines::unsupported原因:npm版本升级解决:package.json增加配置"scripts":{"serve":"setNODE_OPTIONS=--openssl-legacy-provider&&vue-cli-serviceserve","b......
  • (转)Git详解
    原文:https://juejin.cn/post/7067165972901134373#heading-0一、什么是版本控制1、什么是版本控制版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多......
  • gitlab runner 使用摘要
    参考文档GitLabRunnerrunstheCI/CDjobsthataredefinedinGitLabGitLabRunnerisopen-sourceandwritteninGo.Itcanrunasasinglebinaryandhasnolanguage-specificrequirements.AfteryouinstallGitLabRunner,youmustcreateandregisterrunne......
  • Gitlab Docker 使用摘要
    官方文档:https://docs.gitlab.com/ee/install/docker.html#expose-gitlab-on-different-ports设置本地目录设置环境变量GITLAB_HOMEexportGITLAB_HOME=/srv/gitlab安装启动脚本start.sh#!/bin/bashexportGITLAB_HOME=/srv/gitlabsudodockerrun--detach......
  • gitlab项目创建后项目组成员不能提交代码
    提交报错如下:git.exepush--progress"origin"main:mainEnumeratingobjects:4,done.Countingobjects:100%(4/4),done.Deltacompressionusingupto8threadsCompressingobjects:100%(2/2),done.Writingobjects:100%(3/3),294bytes|294.00KiB/s,......
  • git pull error: ******.git did not send all necessary objects
     由于网络问题或其他临时错误导致了对象丢失或损坏,错误的原因往往是仓库中有一些对象在传输中丢失或损坏。当Git客户端从远程仓库获取对象时,如果有任何一个对象丢失或损坏,就会导致克隆失败并显示这个错误。重新尝试克隆即可!......
  • 记录今天最后一个bug
    重大发现:使用axios时,当路径下面出现下划线时,一般路径就没问题如果没出现下划线,记得去看看路径出错了没背景:前端vue中使用axios时路径写错,少加了“//”,导致找bug找了半小时,nnd 错误案例 正确例子重大发现:使用axios时,当路径下面出现下划线时,一般路径就没问题如果没出现......
  • Git
    Git是版本控制系统(VCSs)的标准。以下为自底向上介绍Git,从数据模型开始,再到接口,并理解接口是如何操作数据模型的。 快照(Snapshots) Git通过一系列快照来管理顶级目录中的文件和文件夹的历史记录。文件被称为Blob(数据对象,也就是一组数据)。目录被称为tree,将名字和Blob对象或树......
  • git常用指令
    gitclonehttps://gitee.com/CcMdFk/the-gobang-game-of-cc-md-fk.gitgitpullhttps://gitee.com/CcMdFk/the-gobang-game-of-cc-md-fk.gitgitpull--rebasehttps://gitee.com/CcMdFk/the-gobang-game-of-cc-md-fk.gitgitadd.gitstatusgitcommit-m"add&q......