Como deshacer casi cualquier acción con Git

Directo desde el blog de GitHub llega un fantástico artículo donde enumera, explica y pone ejemplos de diferentes situaciones en las que nos podemos encontrar con Git y los comandos que nos permiten salvar la situación en cada caso.

Estan los habituales amend, revert, rebase... pero no se dejan aspectos avanzados como usar reflog (ese va para nota).