选择以查找已修复bug的提交



"gitdivisible"的正常用例是将引用的尖端声明为"坏"状态,并在历史记录中搜索最近的"好"状态。当搜索引入错误的提交时,这是有意义的。

然而,有时会在旧代码中发现一个错误,而这个错误在最新的提交中得到了修复,问题是:哪个提交修复了这个错误?使用git bisect时,可以颠倒"好"one_answers"坏"这两个词的含义,即将修复的bug视为"坏"状态,将bug视为"好"状态。但这有点令人困惑——从"好"状态开始平分,然后搜索"坏"状态可能会更清楚。但git似乎不喜欢这种方法:

$ git bisect start
$ git bisect good
$ git checkout <commit with known bug>
$ git bisect bad
Some good revs are not ancestor of the bad rev.
git bisect cannot work properly in this case.
Maybe you mistake good and bad revs?

处理这个案子的好方法是什么?

您可能已经注意到,git并不是"好看"one_answers"直观的界面"。你确实猜到了答案和正确的数字方式:把固定的当成坏的,而不是固定的当成好的。

由于这完美地处理了你(不太常见)的情况,除了有点难看之外,git中不需要对它进行特殊支持,你可以假设永远不会有。

编辑:我错了。Git在2.7版本中添加了对此的支持——请参阅此答案。

最新更新