I work a lot with the local history of the IDE, where I can also set labels to a current state. In addition, it creates its own labels like last time all tests were green etc.
Still, in one of my last project that really lived TDD, they made a good point that I should just push as often as I label, since that also triggers all sorts of other tests which I usually don't run locally, or not as often.
I had "rearrange code" checked once for a commit, and fortunately, it had automatically saved the exact state before that.
Heisenberg exploded? The scientist or the one from Breaking Bad?