If you want to find out which revision introduced a bug, you can use the bisect functionality. Right click on a folder to pop up the context menu and then select the command → . A dialog will pop up:
Enter the last known good revision and the first or one known bad (this is normally HEAD).
After hitting, Git will perform a binary search for the first faulty revision: Git switches to a revision in the middle. Now you can test this revision.
TortoiseGit now provides three new options in the context menu:
If this revision is OK, hit → , otherwise hit → To skip this revision hit → Git will proceed with the binary search and switches to the "next" revision, so that you can test it. This goes on until the faulty revision is found or you abort this operation by clicking on → (this will reset the bisect process and switch out your previous branch/HEAD).
If a revision cannot be tested, or you want to go on with a different one, you can easily go to the log and (hard) reset the current HEAD to a revision you like.
If you use submodule you might need to make sure that those are updated after each bisect step so that all dependencies are up to date.
You can find more information at the section called “git-bisect(1)”