'git bisect'的正常用例是将引用的尖端声明为'bad'状态,并在历史中搜索最新的'good'状态。在搜索引入错误的提交时,这是有意义的。
但是,有时会在旧代码中发现一个错误,这个错误在最新的提交中得到修复,问题是:哪个提交修复了这个错误?可以使用git bisect
反转“好”和“坏”这两个词,即将固定错误视为“坏”状态,将错误视为“好”状态。但这有点令人困惑 - 在一个“好”的状态下开始一个二等分并回顾一个“坏”状态可能会更加清楚。但是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?
处理这种情况的好方法是什么?
答案 0 :(得分:3)
您可能已经注意到git与“漂亮”和“直观界面”的关系并不多。你确实猜到了答案和正确的git方式:只是认为固定为坏,而不是固定好。
因为除了有点丑陋之外,它完美地处理了你的(不太常见)的情况,因此在git中不需要特别支持它,你可以假设它永远不会。
编辑:我错了。 Git在2.7版中添加了对此的支持 - 请参阅this answer。