In theory - and there are systems that do this - you can automatically remove a bug if you combine `git bisect` with unit tests. I have never met anyone who had such a sophisticated setup but my linux magazine tells me some people do that.
Damn, this is crazy or I am missing something here. If one is able to write unit tests that would detect a bug, why not to run them *before* the code is committed?
It doesn't have to be a unit test and sometimes bugs do slip through, regardless of automated testing. Also, it doesn't automatically remove the bug, but find the commit where given test fails first time. But, if you write consummate code, such a hackery is not needed
It still feel a lot more adventurous when I have version control to back me up. It's easier to experiment with the code and throw away stuff that I don't like and keep the stuff that I like. Sharing with friends and strangers is a breeze.