最后一步,这次是坏的。
$gitbisectbad
458eab0eb8d808e16d98ec7039a7c53855dd9ed6isthefirstbadcommit
commit458eab0eb8d808e16d98ec7039a7c53855dd9ed6
Author:RodrigoFlores
Date:TueOct2122:31:05-0200
added1013
:1006441006447bc3db7f48a43ccf1a8cc7c26146912cc88c1009b393a2138a96c1530f41f70
1ab43cca893226976Mfile.txt
我们终于得到了那个引入 1013 数字的提交点。命令 git bisect log 可以回放整个过程。
$gitbisectstart
#bad:[740cdf01dc41a39b41d4b09b57a970bfe38f]added1024
gitbisectbad740cdf01dc41a39b41d4b09b57a970bfe38f
#good:[7c0dcfa7514379151e0d83ffbf805850d2093538]added1
gitbisectgood7c0dcfa7514379151e0d83ffbf805850d2093538
#good:[8950f7db7e7cad0b2dc394ff9b75fc3d38c9d72a]added512
gitbisectgood8950f7db7e7cad0b2dc394ff9b75fc3d38c9d72a
#good:[a01ba83f3500b48da97c5f5c33052623aaa4161a]added768
gitbisectgooda01ba83f3500b48da97c5f5c33052623aaa4161a
#good:[4a4a668bf3363d09af5fd1906bc4272aacdb4495]added896
gitbisectgood4a4a668bf3363d09af5fd1906bc4272aacdb4495
#good:[9059c5b8b898159e8d1d797bff3b1febd1fd6a1c]added960
gitbisectgood9059c5b8b898159e8d1d797bff3b1febd1fd6a1c
#good:[0c844d0b33ef297b742206ebc293f4925705b083]added992
gitbisectgood0c844d0b33ef297b742206ebc293f4925705b083
#good:[0ee17eb17bd96b321a01c73eb13a8929a68b1239]added1008
gitbisectgood0ee17eb17bd96b321a01c73eb13a8929a68b1239
#bad:[dfb1e71736dcfffa2a30aecd7299f45f757c057e]added1016
gitbisectbaddfb1e71736dcfffa2a30aecd7299f45f757c057e
#good:[6e6d08c374df5162fed65fed82859b69f86b936e]added1012
gitbisectgood6e6d08c374df5162fed65fed82859b69f86b936e
#bad:[1d23b7045a8accd254efa859d7fc66f1f58a59f0]added1014
gitbisectbad1d23b7045a8accd254efa859d7fc66f1f58a59f0
#bad:[458eab0eb8d808e16d98ec7039a7c53855dd9ed6]added1013
gitbisectbad458eab0eb8d808e16d98ec7039a7c53855dd9ed6
#firstbadcommit:[458eab0eb8d808e16d98ec7039a7c53855dd9ed6]added1013
这个例子里一共有 1024 个提交点,遍历他们我们只用了 10 步。如果提交点数量再多一倍变成 2048 个,根据二分查找算法,我们仅仅需要多加一步就能找到想要的提交点,因为二分查找算法的时间复杂度为 O(log n)。尽管已经如此高效,一遍又一遍的运行测试命令还是很枯燥的。因此,让我们再进一步,将这个过程自动化吧。