Git: recover from messy situations

A few years ago, we transitioned from subversion to git for our version control system. There is no doubt that git is much more powerful, although we likely under-use it. But even with the limited set of commands we use, people are still finding the command line...