Deshacer el último commit (perdiendo los cambios realizados en el working copy)
git log
Veo el historial para poder ver ID hash al que quiero retroceder.
Aunque es opcional utilizando el posicionamiento relativo HEAD~n
dónde n es el número de posiciones a retroceder desde la posición actual.
git reset --hard HEAD~1
Utilizo --hard
para forzar perder cambios en el working copy si los hubiera.
Rehacer el último commit (el que acabamos de deshacer)
git reflog
Veo el ID del antiguo commit
5f3a6e9 HEAD@{1}: commit: Doy estilo a git-nuestro.md
Y me muevo a él:
git reset --hard 5f3a6e9
Hacer un merge con ‘master’ (styled absorbe a master)
La rama master no ha hecho ningún commit desde que se ramifico styled por lo que esta todo al día.
Hacer un merge de “htmlify” en “styled” (styled absorbe a htmlify)
Si porque se esta haciendo merge de un commit de una rama el cual contiene un archivo con contenido distinto a la de la rama actual.
Desde “master”, hacer un merge con “styled”
No porque como en master no se ha añadido ningún commit desde que ramifico styled simplemente avanza master hasta el último commit de styled
Dibujar el diagrama
git log --graph --decorate --pretty=oneline
Hacer un merge “no fast-forward” de “title” en “master” (master absorbe a title)
Si porque desde que se ramifico title no se hizo ningún commit en master
Deshacer el merge (sin perder los cambios del working copy)
git log --graph --decorate --pretty=oneline
Para ver el commit antes de que master mergueara title
Aunque también se podría hacer directamente:
`git reset HEAD~1``
Sin --hard
para mantener los cambios del working copy
Descartar los cambios
git checkout git-nuestro.md
Eliminar la rama “title”
git branch -D title
Rehacer el merge que hemos deshecho
git reflog
284cb4c HEAD@{1}: merge title: Merge made by the 'recursive' strategy.
git reset --hard 284cb4c
Volver al commit inicial cuando se creó el poema
git log --graph --decorate --pretty=oneline
git checkout e5e0502a533e339029f00ebfbfbc3fab36c679ce
Volver al estado final, cuando pusimos título al poema
git log --graph --decorate --pretty=oneline
git checkout dcdc7e9b7e1f01541e958e53ac6c2b01552968a5