git bisect

来源:互联网 发布:图像卷积算法介绍 编辑:程序博客网 时间:2024/05/29 16:27

今天在看openssl源码的时候,发现最新pull下来的代码把ssl/ssl_algs.c这个文件给删除了,这里边有函数SSL_library_init的定义,于是我就想知道为什么删除该文件,刚开始用笨办法——倒着查看每个patch,实在是太慢了,于是想到了git bisect,虽然之前也知道这个工具,但一直没用过,现在终于有用武之地了。

$git bisect start //开始二分查找

$git bisect good bd31d02 //找了一个包含ssl/ssl_algs.c文件的tag——OpenSSL_1_1_0-pre2bd31d02是它commit号的前几位(只要不冲突就行)。

接下来会自动切换到中间的一个状态,如果包含所需要的文件,就输入:
$git bisect good

否则输入:
$git bisect bad

如此重复直到定位到是在哪个commit将文件删除的,记下commit号,然后回复到代码库原始的状态:
$git bisect reset

使用git show commit-num 就可以查看patch的详细信息。

0 0