© xkcd
Once you have internalized the basic work flow, Git is a powerful tool for distributed version control that offers a lot of advantages over more clunky alternatives like SVN. You clone, you pull, you commit, you push; nothing simpler than that. Right.
But then you find yourself stuck with a merge conflict, and git sends you down the rabbit hole. Or you accidentally added a commit to the wrong branch and already pushed it to the remote repo. Or you need to switch to a different branch (just for a second!) but git won't let you because you have unsaved changes. And what if you need to patch your code with that one commit from a completely different branch (but nothing else)?
The following guide compiles a list of useful advanced Git commands that will make your everyday coding life easier. Oh, and make sure your co-workers know them, too...