2011-11-21 10 views
9

Estaba jugando con reset después de leer cosas en el libro de Pro Git.Git: reset --hard ahora estoy atorado en el pasado

Básicamente terminé haciendo un reset --hard a una revisión 12 confirmaciones anteriores.

Parece que no puedo volver al presente ni a la última confirmación. He intentado reset usando ORIG_HEAD e incluso alimentándolo en el sha1 de la revisión para avanzar.

Corriendo git status Obtengo: Sucursal está retrasada por 12 commits y puede reenviarse rápidamente.

¿Cómo muevo HEAD a la última confirmación?

Respuesta

4

Parece que ya has pulsado los 12 commits que restableces. Si ese es el caso, entonces

git merge --ff-only REMOTE/BRANCH_NAME 

deben trabajar en REMOTE es el nombre de la distancia (comúnmente origin) y BRANCH_NAME es el nombre de la rama actual.

+0

¡Eso lo hizo, incluso sin acceso a la red!Genial, aunque desearía haber entendido realmente cómo se puede fusionar con una rama remota, incluso si no se puede conectar. – Gabe

+1

'merge's son operaciones locales (es la' fetch' que requiere una conexión de red). –

11

Usa el reflog para saber dónde quieres ir. Puede obtenerlo usando git reflog y luego restablecer a la confirmación correspondiente. Suponiendo que no ha hecho nada desde que hizo el reinicio,

git reset --hard '[email protected]{1}' 

debería hacerlo.

+0

Gracias, pero parece que no ayuda. La última confirmación mostrada por reflog es la revisión en la que estoy actualmente, no muestra los 12 desaparecidos :( – Gabe

+0

¿Qué muestra el anterior? Reflog rastrea los cambios en HEAD. –

+0

Ejecuté 'git reset - hard 'HEAD @ {1}' 'y ahora de acuerdo con' git status' Ahora estoy a solo 11 commits :) – Gabe

3

Otra forma (junto reflog) sería utilizar el hecho de que su rama parece estar referenciada en el lado remotes espacio de nombres, como una rama remota, por lo que se ve:

Your branch is behind by 12 commits and can be fast-forwarded. 

Un simple

git merge origin/yourBranch 

debería ser suficiente para adelantar el HEAD de su sucursal local de nuevo a donde estaba su sucursal remota.

Cuestiones relacionadas