git bisect
有没有过写了一天的代码,checkin无数,结果突然发现之前没注意的地方break的时候?
这个时候要在茫茫commits里寻找那个错误的commit是多么的痛苦啊。`git-bisect`就是大救星!
git-bisect本质上就是一个二分法,用起来也很简单:
git bisect start #start
git bisect bad #current branch is bad
git bisect good <SHA-1> #some old commit that is good
然后只要不停的告诉git当前commit是不是好的,
git bisect good
或者
git bisect bad
就能找到罪魁祸首了!
就是先执行git bisect start之后,先告诉git当前的版本是坏的即执行git bisect bad,在告诉git哪一个commit是好的(git bisect good commitid),git会开始进行查找,通过二分查找的方法不停的切换到相应的commit上,然后在这个commit上运行代码测试看有没有问题(在自己的项目中测试),如果有问题,回到命令行告诉git这个commit是有问题或者没有问题的,即执行git bisect good/bad,这样就对这个commit做了个标记,git会告诉你第一次出现错误的时哪一个commit,这些都是测试,不用担心会影响文件,最后在执行git bisect reset就回归正常了,通过之前的测试,你就知道第一次出现错误是在哪一次commit上了,然后直接定位到那一次的commit中找出错的地方
作者:大Kk
链接:https://www.zhihu.com/question/27462267/answer/36765271
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。