git reset --hard HEAD~1
Para retroceder al nodo anterior movemos el puntero HEAD una posición con el ~1 y con la opción --hard dejamos limpio el working copy
git reflog
git reset --hard HEAD@{1}
Primero utilizo reflog para obtener el histórico de los pasos que hemos hecho en nuestro repositorio. Entonces localizo el que quiero rehacer, que está a un paso de donde estoy ahora HEAD@{1}, y lo referencio mediante su posición en el reflog.
No. Porque la rama master ya está contenida en styled, por lo que no hay nada que mergear.
Si. Porque hemos intentado mergear dos ramas, styled y htmlify, en la que se han modificado las mismas lineas del mismo fichero.
No. Porque los nodos de master y styled forman una "linea", es decir no modificamos las mismas lineas del mismo fichero en diferentes ramas y por ello se puede realizar un merge fast-forward.
git log —graph
Si, podría ser fast-forward ya que los nodos de ambas ramas forman una "linea" y se podría haber colocado el puntero diréctamente en la rama title sin necesidad de crear un nuevo commit.
git reset HEAD~1
git reset --hard
git branch -D title
git reflog
git reset --hard HEAD@{2}
git checkout 100f57a
git checkout master