bisect git 使用_让 Git Bisect 帮助你

最后一步,这次是坏的。

$ git bisect bad

458eab0eb8d808e16d98ec7039a7c53855dd9ed6 is the first bad commit

commit 458eab0eb8d808e16d98ec7039a7c53855dd9ed6

Author: Rodrigo Flores 

Date:   Tue Oct 21 22:31:05 2014 -0200

added 1013

:100644 100644 7bc3db7f48a43ccf1a8cc7c26146912cc88c1009 b393a2138a96c1530f41f70

1ab43cca893226976 M  file.txt

我们终于得到了那个引入 1013 数字的提交点。命令 git bisect log 可以回放整个过程。

$ git bisect start

# bad: [740cdf012013dc41a39b41d4b09b57a970bfe38f] added 1024

git bisect bad 740cdf012013dc41a39b41d4b09b57a970bfe38f

# good: [7c0dcfa7514379151e0d83ffbf805850d2093538] added 1

git bisect good 7c0dcfa7514379151e0d83ffbf805850d2093538

# good: [8950f7db7e7cad0b2dc394ff9b75fc3d38c9d72a] added 512

git bisect good 8950f7db7e7cad0b2dc394ff9b75fc3d38c9d72a

# good: [a01ba83f3500b48da97c5f5c33052623aaa4161a] added 768

git bisect good a01ba83f3500b48da97c5f5c33052623aaa4161a

# good: [4a4a668bf3363d09af5fd1906bc4272aacdb4495] added 896

git bisect good 4a4a668bf3363d09af5fd1906bc4272aacdb4495

# good: [9059c5b8b898159e8d1d797bff3b1febd1fd6a1c] added 960

git bisect good 9059c5b8b898159e8d1d797bff3b1febd1fd6a1c

# good: [0c844d0b33ef297b742206ebc293f4925705b083] added 992

git bisect good 0c844d0b33ef297b742206ebc293f4925705b083

# good: [0ee17eb17bd96b321a01c73eb13a8929a68b1239] added 1008

git bisect good 0ee17eb17bd96b321a01c73eb13a8929a68b1239

# bad: [dfb1e71736dcfffa2a30aecd7299f45f757c057e] added 1016

git bisect bad dfb1e71736dcfffa2a30aecd7299f45f757c057e

# good: [6e6d08c374df5162fed65fed82859b69f86b936e] added 1012

git bisect good 6e6d08c374df5162fed65fed82859b69f86b936e

# bad: [1d23b7045a8accd254efa859d7fc66f1f58a59f0] added 1014

git bisect bad 1d23b7045a8accd254efa859d7fc66f1f58a59f0

# bad: [458eab0eb8d808e16d98ec7039a7c53855dd9ed6] added 1013

git bisect bad 458eab0eb8d808e16d98ec7039a7c53855dd9ed6

# first bad commit: [458eab0eb8d808e16d98ec7039a7c53855dd9ed6] added 1013

这个例子里一共有 1024 个提交点,遍历他们我们只用了 10 步。如果提交点数量再多一倍变成 2048 个,根据二分查找算法,我们仅仅需要多加一步就能找到想要的提交点,因为二分查找算法的时间复杂度为 O(log n)。尽管已经如此高效,一遍又一遍的运行测试命令还是很枯燥的。因此,让我们再进一步,将这个过程自动化吧。


版权声明:本文为weixin_39976166原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。