当前位置: 首页 > news >正文

git bisect和git blame

1.用 git bisect 找到出错的commit

设置开始,最新的一个已知的错误的commit和第一个已知的正确的commit,通过二分法,找出第一个出错的commit。

二分查找法(binary search method)或二分法(bisection method),是一种在有序数组中查找目标位置的搜索方法。算法会在每一步与数组的中间值进行比较,如果匹配成功则返回该位置;否则,根据比较结果,选择中间值的右侧或左侧的子数组继续搜索,直至找到目标位置。在 Git 中,历史提交记录对应一组可供测试的值数组,若程序能在某个 commit 编译成功则为目标位置。二分查找的算法复杂度为 O(log n)

开始测试:

$ git bisect start

将当前版本标记为【bad】:


$ git bisect bad

将上一个正常版本标记为【good】:


$ git bisect good master

启动第一轮排查:

具体参见(用 git bisect 快速定位你想找的 commit当项目报错,你想定位是哪个 commit 引入的错误的时候,会怎 - 掘金)

2. 使用 git blame 命令

 git bisect 适用于只知道项目有 bug,但不知道 bug 在哪儿、是具体哪次提交引入的场景。如果知道了 bug 在代码中的位置,需要明确谁提交或改动的这行代码,就需要使用 git blame 命令。

git blame --date short -L 1,10 ChangeLog.MD1a3b00cd (Henry Wu 2024-08-29  1) # 2024-08-28 等保原由做了修改
1a3b00cd (Henry Wu 2024-08-29  2)  小程序游客绑定工号可能会报错误;
1a3b00cd (Henry Wu 2024-08-29  3)  移动注册页面需要修改;
1a3b00cd (Henry Wu 2024-08-29  4)
feff34d1 (Henry Wu 2023-03-24  5)
3f600469 (Henry Wu 2024-07-16  6) # 2024-07-16 清理文件
3f600469 (Henry Wu 2024-07-16  7)  移除MigrationBackup文件夹,其中为
3f600469 (Henry Wu 2024-07-16  8)  V1/Service/Share/packages.config
3f600469 (Henry Wu 2024-07-16  9)  V1/Service/Share/abc.cs
3f600469 (Henry Wu 2024-07-16 10)  这2个项目升级时的备份

其中的 -L 表示限定考察代码的行数范围,格式为 -L <from>,<to> 。从反馈的结果可知,bug 出现在 map.txt 文件的第 37 至 39 行,由 HAL 首次引入该 bug,对应 SHA-1 为 83076f97,与 git bisect 结果一致。

此外,还可以指定 -M 参数,查看文件被重构或移动到某处的情况;指定 -C 参数,则可以展示目标文件从当前 commit 包含的文件中复制或移入相关代码的情况;指定 -CCC 则范围不仅限于当前 commit,可包含所有 commit

相关文章:

git bisect和git blame

1.用 git bisect 找到出错的commit 设置开始&#xff0c;最新的一个已知的错误的commit和第一个已知的正确的commit&#xff0c;通过二分法&#xff0c;找出第一个出错的commit。 二分查找法&#xff08;binary search method&#xff09;或二分法&#xff08;bisection meth…...

【面试题】Node.JS篇

1. 什么是Node.js?它的主要特点是什么?适用于哪些场景? Node.js 是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;它允许JavaScript代码在服务器端运行。Node.js的主要特点是事件驱动、非阻塞I/O模型&#xff0c;这使得它非常适合处理高并发请求和实时应用。它适…...

Leetcode11:盛水最多的容器

原题地址&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳…...

php如何对海量数据进行基数统计

在PHP中&#xff0c;对海量数据进行基数统计通常可以使用布隆过滤器&#xff08;Bloom Filter&#xff09;或者Count-Min Sketch算法。以下是使用Count-Min Sketch算法的一个简单示例&#xff1a; class CountMinSketch {private $rows;private $columns;private $values;publ…...

git命令报错:fatal: not a git repository (or any of the parent directories): .git

当你执行 Git 命令时遇到错误信息 "fatal: not a git repository (or any of the parent directories): .git"&#xff0c;这表明你当前所在的目录不是一个 Git 仓库&#xff0c;或者你的工作目录不在 Git 仓库的根目录下。以下是一些解决这个问题的步骤&#xff1a;…...

如何通过sip信令以及抓包文件分析媒体发到哪个地方

前言 问题描述&#xff1a;A的媒体没转发到B&#xff0c;B只能听到回铃音&#xff0c;没有A的说话声音&#xff0c;并且fs这边按正常的信令发送了. 分析流程 分析早期媒体发送到哪一个IP 10.19.0.1发送了一个请求给10.19.0.157这个IP&#xff0c;然而这里的SDP媒体地址&am…...

【网络安全零基础入门】一文搞懂Javascript实现Post请求、Ajax请求、输出数据到页面、实现前进后退、文件上传

文章目录 一、Javascript原生post请求写法二、原生JS封装Ajax请求三、JS里的值或内容输出到HTML网页中四、Javascript页面后退前进刷新示例五、Javascript实现文件上传&#x1f449;1.成长路线图&学习规划&#x1f448;&#x1f449;2.网安入门到进阶视频教程&#x1f448;…...

NVR管理平台EasyNVR多个NVR同时管理综合应用方案

为了推动应急管理能力的现代化&#xff0c;应急管理部提出了加速现代信息技术与应急管理业务深度融合的宏伟蓝图。这一计划不仅是国家加强和改进应急管理工作的战略重点&#xff0c;也是应对当前应急管理形势的严峻挑战和满足人民群众对公共安全需求的必要举措。 为了实现应急管…...

SpringBoot核心框架之AOP详解

SpringBoot核心框架之AOP详解 一、AOP基础 1.1 AOP概述 AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程&#xff0c;面向方面编程&#xff09;&#xff0c;其实就是面向特定方法编程。 场景&#xff1a;项目部分功能运行较慢&#xff0c;定位执行耗时…...

Linux: network: ifconfig已经过时,建议使用ip addr相关命令

最近有一个同事在问网络的问题,在debug的过程中还在使用ifconfig命令查看IP的相关信息。 但是这个ifconfig已经不推荐使用了,最好使用ip 相关的命令做操作。 有些信息使用ifconfig显示不出来 ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500ine…...

Flutter 鸿蒙next中的路由使用详解【基础使用】

✅近期推荐&#xff1a;求职神器 https://bbs.csdn.net/topics/619384540 &#x1f525;欢迎大家订阅系列专栏&#xff1a;flutter_鸿蒙next &#x1f4ac;淼学派语录&#xff1a;只有不断的否认自己和肯定自己&#xff0c;才能走出弯曲不平的泥泞路&#xff0c;因为平坦的大路…...

基于SSM+小程序民宿短租管理系统(民宿1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序民宿短租管理系统实现了管理员、用户及房主 1、管理员可以管理民宿信息和订单信息用户管理、房主管理、房间类型管理、预定管理等。 2、房主可以管理自己的民宿和订单 3、…...

SQL LIKE 操作符

SQL LIKE 操作符 在SQL中&#xff0c;LIKE 操作符用于在查询中搜索列中的特定模式。它通常与 % 和 _ 通配符一起使用&#xff0c;分别代表任意数量的字符和单个字符。LIKE 操作符在数据过滤和模式匹配方面非常有用&#xff0c;尤其是在处理大量文本数据时。 LIKE 操作符的基本…...

七款主流图纸加密软件强力推荐|2024年CAD图纸加密保护指南

在当今信息化的设计行业&#xff0c;保护CAD图纸的知识产权和数据安全变得尤为重要。随着越来越多的企业采用数字化设计和共享文件&#xff0c;如何防止CAD图纸被未经授权的访问和窃取成为了许多设计师和企业关注的焦点。为此&#xff0c;选用合适的图纸加密软件是保护CAD文件安…...

【STM32】单片机ADC原理详解及应用编程

本篇文章主要详细讲述单片机的ADC原理和编程应用&#xff0c;希望我的分享对你有所帮助&#xff01; 目录 一、STM32ADC概述 1、ADC&#xff08;Analog-to-Digital Converter&#xff0c;模数转换器&#xff09; 2、STM32工作原理 二、STM32ADC编程实战 &#xff08;一&am…...

C# 委托简述

1.委托 1.1什么是委托 委托委托 官网解释: 委托是安全封装方法的类型&#xff0c;类似于 C 和 C 中的函数指针。 与 C 函数指针不同的是&#xff0c;委托是面向对象的、类型安全的和可靠的。 委托的类型由委托的名称确定。 个人理解:委托就是一个方法的模板。它可以接收…...

瑞吉外卖项目

目录 Day01业务开发 一、项目总体介绍与展示 二、软件开发整体介绍 &#xff08;一&#xff09;软件开发流程 三、瑞吉外卖项目介绍 &#xff08;一&#xff09;项目介绍 &#xff08;二&#xff09;技术选型功能架构 1.技术选型—— ​编辑2.功能架构—— ​编辑 &a…...

Docker:4、龙晰(Anolis OS 8.8)宝塔面板安装

接上文Docker&#xff1a;1、基于龙晰 &#xff08;Anolis OS 8.8 &#xff09;的基础镜像制作&#xff0c;本节我们介绍&#xff1a;基于Docker的龙晰&#xff08;Anolis OS 8.8 &#xff09;宝塔安装。 在第一节中由于我们对 Docker 容器进行了SSH设置&#xff0c;这为我们这…...

多端项目开发全流程详解 - 从需求分析到多端部署

引言 在当今互联网时代&#xff0c;一个完整的产品常常需要覆盖多个终端&#xff0c;包括小程序、Web端&#xff08;后台管理系统&#xff09;、App端等。本文将详细介绍一个采用前后端分离架构的多端项目开发流程&#xff0c;重点分析各个终端的特点、功能定位及其开发要点。…...

4.5KB原生html+js+css实现图片打印位置的坐标和尺寸获取

一般用于图片打印文字或图片的坐标获取,代码来自AI有改动。 功能&#xff1a;本地图选择后不上传直接可比划线条作为对角线得到矩形&#xff0c;动态显示坐标 按下鼠标开始松开鼠标结束。有细微BUG但不影响坐标获取。 <!DOCTYPE html> <html lang"en">…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…...