Understanding Git-Bisect, i.e. Use Binary Search to Find the Change that Introduced a Bug

Written by fhinkel | Published 2018/10/18
Tech Story Tags: git | bisect | programming | git-bisect | what-is-git-bisect

TLDRvia the TL;DR App

Git is a powerful tool. Once you’ve mastered commit and merge, there are endless possibilities. A very useful one is [git-bisect](https://git-scm.com/docs/git-bisect). It helps you find a commit that introduced a certain change in behavior.

We use git-bisect a lot in the Node.js project. The Node.js project has good continuous integration but some bugs are only discovered after a release. With git-bisect, it’s easy to find the bad commit.

Try it!

If you want to try out git-bisect, here is a demo repository. At some point, a bug was introduced as you can see by running npx mocha test1.js. Can you find the bad commit?

Use this repository to practice git bisect.

Automating git-bisect

Instead of testing each step manually, you can run git-bisect with a script. It will use the script at each step and automatically mark the commit, until it finds the first bad commit.


Written by fhinkel | Senior engineer at Google. Working on Node.js for @GCPcloud. Node.js TSC member. ❤️ JavaScript. she/
Published by HackerNoon on 2018/10/18