I had a really tremendously bad experience with using git professionally and haven't touched it since, but apparently instead of something like "undo" you get "reflog." I don't know what to say about that. Everyone tells me that the internals are great, wonderful, magic, and I am willing to accept that on face value, but the selection of command names just baffles me. As a solo developer, I will just live without it until the names make more sense and I can find a use case.
(I am quite sure that someone will begin howling that you cannot program without git the same way projects cannot be done without Agile, and yet programming existed before either.)