Volver a commit anterior en la misma rama tanto local como en github

publicado por: Anonymous

Mi duda es la siguiente, tengo los siguientes commit:

4e3cb77 cambio local
7978945 despues de revertir el cambio de hensel
60e65f9 actualizacion
8397e64 Update prueba.txt
c9bd0fb primer cambio online
39c7cc0 Base de la prueba, archivo inicial local prueba

¿Cual es el proceso a seguir para volver a un commit en particular(el que yo quiera) tanto de forma local como en github.com quedandome en la misma rama? Hasta ahora solo lo puedo hacer de la siguiente forma:

Una vez veo los log hago un git checkout + el comit al que quiero ir y me sale este mensaje:

You are in ‘detached HEAD’ state. You can look around, make
experimental changes and commit them, and you can discard any commits
you make in this state without impacting any branches by performing
another checkout. If you want to create a new branch to retain commits
you create, you may do so (now or later) by using -b with the checkout
command again. Example: git checkout -b

HEAD is now at 39c7cc0… Base de la prueba, archivo inicial local prueba

Es ahi donde me veo obligado a crear una nueva rama con:

git checkout -b rama
git push --set-upstream origin rama

Sin embargo de esta forma no obstante de crear una rama adicional tambien se pierden los commits que estaban despues de volver a ese commit osea que si tengo 10 commits y volvi al commit 7 los commit 8/9/10 no se ven el log de la nueva rama y no quiero eso. No se si fui lo suficientemente claro cualquier duda favor indicarme.

solución

La forma correcta de hacerlo es usando el comando git revert, pues mantiene un histórico de lo que pasó en esa rama (a modo de bitácora).

De esta forma, el comando git revert 4e3cb77 modificará tu copia local revirtiendo los cambios que hiciste en el commit 4e3cb77 "cambio local". Si querés restaurar la rama a un punto específico, podés reversar múltiples commits hasta llegar al punto deseado.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *