git bisect只是一个git命令,和git pull、git push等常用的命令一样。它的用途是利用二分查找算法快速确定引起问题的提交。下面以确定哪次提交引起编译错误为例介绍git bisect的基本使用方法:
场景
当前最新提交下出现了编译错误(如执行npm run build出现错误),但是由于多人协作开发,不知道哪次提交引入了问题。此时需要确定引入问题的提交,从而缩小代码检查范围。
过程
1.首先尽可能确定最近一次不会出现编译错误的提交,这里我们以当前分支倒数第100次提交为例(实际开发过程中可能不需要估计这么多,但是git bisect由于使用了二分查找可以急速缩小范围,所以估计大些也没关系),此时我们可以使用HEAD~99
表示这次提交
2.定位到当前git工程的根目录下,执行下面的命令进入搜索流程:
$ git bisect start HEAD HEAD~99
上面的命令是说HEAD提交会出现编译错误,而HEAD~99
提交没有出现编译错误。
3.此时搜索流程启动,工程会变成HEAD和HEAD~99
的中间那次提交的状态,此时我们需要确定此次提交是好是坏,执行npm run build查看是否会出现错误:
$ npm run build
如果出现错误,执行: