¿Cómo mover la cabeza hacia atrás al lugar anterior? (Cabeza separada)

En git, intenté aplastar la confirmación fusionándome con otra rama y luego restableciendo HEAD en la ubicación anterior con:

 git reset origin/master 

Pero necesito salir de esto. ¿Cómo mover la cabeza hacia atrás al lugar anterior?

Tengo un 23b6772 SHA1 23b6772 ( 23b6772 ) que necesito mover.
¿Cómo puedo volver a esta fijación?

90
30 дек. set timpone 30 dec. 2015-12-30 00:53 '16 a las 0:53 2015-12-30 00:53
@ 5 respuestas

Antes de responder, agreguemos algunos antecedentes, explicando qué HEAD .

First of all what is HEAD?

HEAD es simplemente un enlace a la confirmación actual (última) en el hilo actual.
En cualquier momento solo puede haber una HEAD . (excluyendo git worktree )

HEAD contenido de HEAD se almacena en .git/HEAD y contiene 40 bytes de SHA-1 de la confirmación actual.


detached HEAD

Si no usa la última confirmación, significa que HEAD apunta a la confirmación anterior en la historia, se llama detached HEAD .

2019

30 дек. La respuesta se da CodeWizard 30 de diciembre. 2015-12-30 00:56 '16 a las 0:56 2015-12-30 00:56

Aquí hay un enfoque que puede ser muy simple y memorable. Verifique 2 condiciones y ejecute el comando 1. Luego está nuevamente en la pista.

Si

estas en una "cabeza separada"
(es decir, tipo de git status , ve HEAD detached at <commit_id> )

y

sucursal existente satisface sus necesidades
(Es decir, el tipo de git branch -v de git branch -v , ve el nombre de la rama con mensajes de confirmación relacionados que representan el trabajo que desea continuar)

Entonces

simplemente verifique esa rama (es decir, escriba git checkout <branch_name> , verá Switched to branch <branch_name> ).

Resultados

Ahora puedes continuar agregando y haciendo tu trabajo como antes; los cambios serán rastreados en <branch_name> .

Tenga en cuenta que si guardó su trabajo cuando HEAD se desconectó, en la mayoría de los casos este trabajo se fusionará automáticamente en el proceso descrito anteriormente. Si ve un mensaje de conflicto de fusión, no se asuste. Hay algunos tutoriales geniales con pasos simples para resolver el conflicto y completar la fusión.

9
09 авг. La respuesta la da Kay V 09 ago. 2016-08-09 17:10 '16 a las 5:10 pm 2016-08-09 17:10

La pregunta puede leerse como:

Pude desconectarme de HEAD en 23b6772 y 23b6772 git reset origin/master (porque quería squash). ¿Ahora cambié de opinión sobre cómo volver a HEAD en 23b6772 ?

Respuesta directa: git reset 23b6772

Pero me encontré con este problema porque me dolía escribir (copiar y pegar) los hashes fijos o su abreviatura cada vez que quería referirme al HEAD anterior, y estaba buscando en Google para ver si había alguna taquigrafía.

Resulta que hay!

git reset - (o en mi caso git cherry-pick - )

Que, por cierto, era lo mismo que cd - para volver al directorio actual anterior en * nix! Así hurra, aprendí dos cosas con una piedra.

3
22 июля '17 в 7:46 2017-07-22 07:46 La respuesta la da antak el 22 de julio de 2017 a las 7:46 2017-07-22 07:46

Para hacer

 git reset 23b6772 

Para ver si estás en la posición correcta:

 git status 

Veras algo

En la rama maestra, su sucursal tiene 17 confirmaciones detrás de 'origen / maestro' y se puede transferir rápidamente.

Luego corrija la CABEZA a la confirmación actual:

 git push --force 
3
10 окт. La respuesta se da curiosa 10 oct. 2018-10-10 16:14 '18 a las 4:14 pm 2018-10-10 16:14

Cuando ejecute el git checkout commit_id HEAD se desconectará de 13ca5593d(say commit-id) y la rama estará disponible por más tiempo.

Regrese al lugar anterior y ejecute el paso del comando: a) git pull origin_name_name (diga master) b) git checkout branch_name c) git pull origin_name_plant_name

Volverá a la ubicación anterior con la confirmación actualizada del repositorio remoto.

0
18 янв. La respuesta es dada por Deepak Kumar el 18 de enero. 2019-01-18 12:15 '19 a las 12:15 pm 2019-01-18 12:15

Otras preguntas sobre etiquetas o Haz una pregunta