【发布时间】:2020-07-19 22:00:26
【问题描述】:
我有一个包含复杂分支和合并树的存储库,我想使用 git bisect 来查找何时引入了错误。
我有一个好的提交和坏的提交来开始平分,其中好的提交是坏提交的祖先。
我希望 git bisect 去提交具有良好提交作为祖先的提交,但它没有(使用 git 2.21.0)。
目前,我通过保留提交列表并使用git rev-list --ancestry-path GOOD..BAD 并在中间选择一个提交来手动进行平分。有没有办法使用git bisect 自动执行此操作?它有没有保留在祖先路径中的标志?
首先在祖先路径中二等分的推理
与正在搜索的错误相关的功能可能并不存在于所有分支中,因此检查在那里无关紧要。但它们应该存在于祖先路径中。
一旦完成对祖先路径的二分,一个人可能会得到一个合并提交作为责备,他们会知道这个错误来自那个分支。这已经教会了人们很多关于这个错误的知识。
要继续对引入错误的分支进行二等分,不需要单独测试每个提交(因为它们不一定具有出现错误所需的功能),但应该将每个提交与最后一次好的提交,然后检查错误是否存在。然后可以查明一个特定的提交,当它与好的提交合并时,会引入错误。
请注意,我已经多次完成此过程,它对我非常有用,我只是在寻找使其更方便的方法。
【问题讨论】:
标签: git git-bisect