git bisect 二分法查找引入bug的提交

项目解决问题过程中发现引入了新的 bug(原本没有),需要定位引入bug的提交,可以使用git bisect

git bisect <subcommand> <options>

举个例子,编写一个很简单的.c程序,编译通过并将该次提交tag设置为1.00

#include <stdio.h>

int main()
{
	int num1, num2;
	num1 = 1;
	num2 = 2;
	
	printf("The result is %d \n", num1+num2);

	return 0;
}

多次提交之后引入新bug

print("The result is %d \n", num1+num2);

之后再次多次提交。

//  启动
git bisect start
// 将当前状态设置为bad
git bisect bad
// 将tag1.00设置为good,距离当前工作状态有139次提交
git bisect good 1.00

二分法找到中间提交,及提交信息
在这里插入图片描述
简单验证该次提交是否引入bug
如果引入bug将其设置为bad,未引入bug设置为good,继续二分法查找。
也可以设置简单的验证命令行命令来自动查找,比如

git bisect run cl test1.c

二分法查找到中间提交时会自动运行

cl test1.c

找到最初引入bug的提交
在这里插入图片描述
结束(返回当前状态)

git bisect reset

也可以定位到最初检测出bug的提交(需要注意:bisect reset之后就会丢失bug之后的提交,恢复则需要reset)

git bisect reset ****(SHA号)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值