¿Cómo volver a la versión más reciente en Git?

Resuelto Nathan Long asked hace 14 años • 10 respuestas

Recientemente me mudé de SVN a Git y estoy un poco confundido acerca de algo. Necesitaba ejecutar la versión anterior de un script a través de un depurador, así que hice git checkout <previous version hash>e hice lo que tenía que hacer.

Ahora quiero volver a la versión más reciente, pero no conozco el hash. Cuando escribo git logno lo veo.

¿Cómo puedo hacer esto? Además, ¿existe una manera más fácil de cambiar las versiones que escribiendo hashes, algo como "retroceder dos versiones" o "ir a la más reciente cronológicamente"?

Nathan Long avatar Aug 25 '10 00:08 Nathan Long
Aceptado

git checkout masterdebería funcionar. Para retroceder dos versiones, podrías decir algo como git checkout HEAD~2, pero es mejor crear una rama temporal basada en ese tiempo, asígit checkout -b temp_branch HEAD~2

Ana Betts avatar Aug 24 '2010 17:08 Ana Betts

Cuando realiza el pago de una confirmación específica, git crea una rama separada. Entonces, si llamas:

$ git branch 

Verás algo como:

* (detached from 3i4j25)
  master
  other_branch

Para volver al encabezado de la rama maestra, solo necesita realizar el pago en su rama maestra nuevamente:

$ git checkout master

Este comando eliminará automáticamente la rama separada.

Si git checkoutno funciona, probablemente haya modificado archivos que entran en conflicto entre ramas. Para evitar que pierdas el código, git requiere que manejes estos archivos. Tienes tres opciones:

  1. Guarde sus modificaciones (puede mostrarlas más tarde):

    $ git stash
    
  2. Descarte los cambios restableciendo la rama separada:

    $ git reset --hard
    
  3. Crea una nueva rama con las modificaciones anteriores y confírmalas:

    $ git checkout -b my_new_branch
    $ git add my_file.ext
    $ git commit -m "My cool msg"
    

Después de esto , puedes volver a tu rama maestra (versión más reciente):

$ git checkout master
Thomio avatar Feb 24 '2015 18:02 Thomio

Esto funcionó para mí (todavía estaba en la rama maestra):

git reset --hard origin/master
averasko avatar Aug 01 '2013 14:08 averasko

Algunas de las respuestas aquí suponen que está en la rama maestra antes de decidirse a verificar una confirmación anterior. Este no es siempre el caso.

git checkout -

Le indicará la rama en la que se encontraba anteriormente (independientemente de si era maestra o no).

Itai Noam avatar Jun 16 '2019 08:06 Itai Noam