说明:git bisect是git提供的基于二分法高效查找出错提交的工具。
因为我们一般都是在出问题的提交节点开始找,这样的话你就可以在当前提交节点执行下面两个命令:
git bisect start(表示开始使用git bisect命令)
git bisect bad commitID(标记有问题的节点,如果不加commitID,则默认使用当前节点为问题节点)
然后找出最近一个正确版本的提交记录,基于此版本的commitID执行下面的命令
git bisect good commitID
接下来git就会告诉你它已经选取了一个中间提交节点,你可以编译测试了。例如下面的:
Bisecting: 39 revisions left to test after this (roughly 5 steps)
[f58ce1a14888a045d73f9ae570f01738bc434510] factory burn: fix sdcard burn failed [1/1]
如果仍然有问题就执行git bisect bad ,然后你再往前找一个可能没有问题的提交点commitID,把它作为good提交点,执行git bisect good commitID;如果发现没有问题就执行git bisect good,git会自动定位到它跟之前的bad commit的中间节点。重复前面的操作,git会自动查找中间提交节点,并且指向这个提交。然后你只需要在当前提交直接编译验证你的问题就可以了。
查看完代码之后,可以使用git bisect reset来恢复查找之前的状态。当然你也可以随时直接使用这个命令恢复到正常,再使用git log来查看二分法查找之前的提交节点。