'git bisect' is a kind of delta debugging <http://www.st.cs.uni-saarland.de/dd/>: where you have a broken version of the code and a known working version, and you find the change between them that introduces the bug. It's constrained to the version history in the repository, so it will find the guilty commit.
Finally, a plug for delta <http://delta.tigris.org/> which isn't quite the same thing, but will automatically generate a minimal test case given a larger one.