git技巧-git bisect 查找哪一次代码提交引入了错误

原理:就是将代码提交的历史,按照两分法不断缩小定位。所谓”两分法”,就是将代码历史一分为二,确定问题出在前半部分,还是后半部分,不断执行这个过程,直到范围缩小到某一次代码提交。

cd test

启动查错:
$ git bisect start [终点] [起点]

“终点”:最近的提交
“起点”: 更久以前的提交。它们之间的这段历史,就是差错的范围。

例如起点提交4d83cf,终点是最近一次的HEAD

$ git bisect start HEAD 6a83cf

执行上面的命令以后,代码库就会切换到这段范围正当中的那一次提交,本例是第51次提交。(假设HEAD 到6a83cf共101次提交)

<>>>>>>>执行程序看目前版本是否正确,如果正确执行:

$ git bisect good

既然第51次提交没有问题,就意味着错误是在代码历史的后半段引入的。执行上面的命令,Git 就自动切换到后半段的中点(第76次提交)。

<>>>>>>>执行程序看目前版本是否正确,如果不正确执行:

$ git bisect bad

执行上面的命令以后,Git 就自动切换到第51次到第76次的中点(第63次提交)。

接下来,不断重复这个过程,直到成功找到出问题的那一次提交为止。这时,Git 会给出如下的提示。

b23794 is the first bad commit

既然找到那个有问题的提交,就可以检查代码,确定具体是什么错误。

<>>>>>>>退出查错,回到最近一次的代码提交

$ git bisect reset

原文地址:https://blog.liwf.net/2018/12/25/git%E6%8A%80%E5%B7%A7-git-bisect-%E6%9F%A5%E6%89%BE%E5%93%AA%E4%B8%80%E6%AC%A1%E4%BB%A3%E7%A0%81%E6%8F%90%E4%BA%A4%E5%BC%95%E5%85%A5%E4%BA%86%E9%94%99%E8%AF%AF/

你可能感兴趣的:(git技巧-git bisect 查找哪一次代码提交引入了错误)