--

利用 git bisect 两分查错



如果你用 git 来管理你的代码,某年某月某日发现你的代码被你改坏了,但是在较早的版本中是好的, 你需要找出从哪一个版本开始,你的代码出 bug 了。

这个时候 git bisect 命令就是非常管用了。 git bisect

比如当年版本号是 v100,是坏的,你检查了一下,大概 v50 是好的,

>>  git bisect start
>> git bisect bad                 # Current version is bad
>> git bisect good v50            # v50 is known to be good

当你提供了至少一个 good 一个 bad 的时候,git 会出现提示框, 并自动定位到一个合适的 commit 让你继续检查。

  
Bisecting: 675 revisions left to test after this (roughly 10 steps)


这个时候你用 git 提供的这个版本的代码,来做检查,依据你的检查结果,输入

>> git bisect good


或者

>> git bisect bad
当没有剩下的版本的时候,git 会提示你第一个开始变坏的版本。

找到错误的起源之后,你就可以 debug,当然你会需要把版本重新定位到最新的位子并取消 bisect 相关的设置。

>> git bisect reset


或者

>> git bisect reset v_the_commit_you_want_to_locate