一、作用
使用二分法来查找一个引入bug的commit
二、语法
git bisect
三、描述
该命令接受各种子命令,并根据子命令接受不同的选项
该命令使用二进制搜索算法查找项目历史记录中的哪个提交引入了错误。要使用它,首先要告诉它一个已知包含bug的“坏”提交,以及一个在引入bug之前已知的“好”提交。然后git bisect在这两个端点之间选择一个提交,并询问您所选择的提交是“好”还是“坏”。它继续缩小范围,直到找到引入更改的确切提交。
四、基本 bisect 命令:start,bad,good
1、启动一个bisect会话
git bisect start
2、给定一个bad的版本
git bisect bad commit_number
3、给定一个good的版本
git bisect good commit_number
$ git bisect good commit_number
Bisecting: 3 revisions left to test after this (roughly 2 steps)
[9f0b7aaaaaaaaaaaaa1] 增加ssh登录函数
4、根据现在版本进行编译测试,并返回对版本的评价
git bisect good
git bisect bad
5、发现引入bug的版本,会输出对应的commit的提交信息
$ git bisect bad
aaaaaaaaaaaaaaaaa is the first bad commit
commit jjkkkkkssssssss
Author: kkskkkk<kkkkkkkkk@hdhjhdhhdhh.com>
Date: Tue Jan 30 19:57:05 2024 +0800
测试命令
Change-Id: I76fdjhfakfjhkajdfhsajdfhkddadde7
vars/utils.groovy | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
6、完成查找后,要清除对分状态并返回到原来的HEAD,默认状态是回到git bisect start时的版本,也可到指定commit
git bisect reset
git bisect reset <commit>