Git Utilizando reflog


Ejemplo

Si arruinas una rebase, una opción para comenzar de nuevo es volver a la confirmación (pre rebase). Puede hacer esto utilizando reflog (que tiene el historial de todo lo que ha hecho durante los últimos 90 días, esto se puede configurar):

$ git reflog
4a5cbb3 HEAD@{0}: rebase finished: returning to refs/heads/foo
4a5cbb3 HEAD@{1}: rebase: fixed such and such
904f7f0 HEAD@{2}: rebase: checkout upstream/master
3cbe20a HEAD@{3}: commit: fixed such and such
...

Puede ver que la confirmación antes de la rebase era HEAD@{3} (también puede verificar el hash):

git checkout HEAD@{3}

Ahora creas una nueva rama / borra la antigua / prueba el rebase nuevamente.

También puede restablecer directamente a un punto en su reflog , pero solo haga esto si está 100% seguro de que es lo que quiere hacer:

git reset --hard HEAD@{3}

Esto configurará su árbol de git actual para que coincida con la forma en que estaba en ese punto (consulte Deshacer cambios).

Esto se puede usar si está viendo temporalmente qué tan bien funciona una rama cuando se rebasa en otra, pero no desea conservar los resultados.