我有一个带有复杂的分支和合并树的存储库,并且我想使用git bisect查找何时引入了错误。
我有一个好的承诺和不好的承诺来开始二等分,而好的承诺是坏承诺的祖先。
我希望git bisect
转到具有良好提交作为祖先的提交,但是没有(使用git 2.21.0)。
当前,我通过保存提交列表并使用git rev-list --ancestry-path GOOD..BAD
并在中间选择一个提交来手动进行等分。有没有办法用git bisect
自动执行此操作?它是否有留在祖先路径中的标志?
git bisect
没有选择遵循祖先路径的选项。通常,由于以下几个原因,这样的选项并不有用:
master
分支中,则git bisect
会忽略掉一半,甚至在第一次测试后就不会考虑,并且仍然只需要运行十二次就可以找到有问题的提交。除非您具有关于存储库的特定知识,否则不在祖先路径上的提交将产生假阳性或假阴性,通常只允许git rebase
执行其操作即可。由于其行为是O(log N),因此额外的费用往往可以忽略不计。但是,可以根据需要使用git bisect skip RANGE
指定要跳过的范围。