当发现一个引入问题,但是不知道引入的具体提交的时候,就可以使用 git bisect 命令。
这个命令,是使用二分法,帮助我们逐步确定具体是哪个提交引入了问题。
首先,尽可能找到第一个出现问题的 commit,记录其 hash 值;
然后,尽可能找到最后一个正常的 commit,记录其 hash 值。
# 开始 bisect
$ git bisect start
# 录入正确的 commit
$ git bisect good xxxxxx
# 录入出错的 commit。后面的xxxxxx如果不写,则表示当前commit。
$ git bisect bad xxxxxx
# 然后 git 开始在出错的 commit 与正确的 commit 之间开始二分查找,这个过程中你需要不断的验证你的应用是否正常。
#也就是,每执行一次,我们都需要编译一个新的APK,去验证问题是否存在。bad 表示存在问题;good 表示没有问题。
$ git bisect bad
$ git bisect good
$ git bisect good
...
# 直到定位到出错的 commit,退出 bisect。退出后,biscet 会把代码恢复到执行bisect之前的状态。
$ git bisect reset
网友评论