Finding bugs with git bisect
Git provides a couple of tools to help you debug issues in your projects. These tools can be extremely useful, especially in the case of a software regression — that is, a software bug that makes a feature stop functioning as intended after a certain revision. If you don’t know where the bug can be, and there have been dozens or hundreds of commits since the last state where you know the code worked, you’ll likely turn to git bisect
for help.
The bisect command searches semi-automatically, step by step, through project history, trying to find the revision that introduced the bug. In each step, it bisects the history into roughly equal parts and asks whether there is a bug in the dividing commit. It then uses the answer to eliminate one of the two sections and reduces the size of the revision range where there can be a commit that introduced the bug:
Figure 5.2 – An example of git bisect in action...