¿Cómo se mueve un compromiso al área de preparación en git?

Resuelto Jonathan M Davis asked hace 13 años • 3 respuestas

Si desea mover una confirmación al área de preparación, es decir, cancelar la confirmación y mover todos los cambios que había en ella al área de preparación (colocando efectivamente la rama en el estado en el que habría estado antes de la confirmación). ¿Cómo lo haces? ¿O es algo que no puedes hacer?

Lo más cercano que sé hacer es copiar todos los archivos que se cambiaron en la confirmación a otro lugar, restablecer la rama a la confirmación antes de la confirmación que estás intentando mover al área de preparación, mover todos los Copie los archivos nuevamente en el repositorio y luego agréguelos al área de preparación. Funciona, pero no es exactamente una buena solución. Lo que me gustaría poder hacer es simplemente deshacer la confirmación y mover su cambio al área de preparación. Se puede hacer? Y si es así, ¿cómo?

Jonathan M Davis avatar Aug 27 '11 17:08 Jonathan M Davis
Aceptado
git reset --soft HEAD^

Esto restablecerá su índice a HEAD^(la confirmación anterior) pero dejará sus cambios en el área de preparación.

Hay algunos diagramas útiles en los git-resetdocumentos.

Si está en Windows, es posible que necesite utilizar este formato:

git reset --soft HEAD~1
Abizern avatar Aug 27 '2011 10:08 Abizern

Una manera sencilla

  1. Archivos comprometidos al área de preparación

    git reset --soft HEAD^1

  2. Puesta en escena para UnStage : (use "git reset HEAD ..." para quitar el escenario)

    git reset HEAD git commands.txt or git reset HEAD *ds.txt

aquí, *--> todos los archivos terminan con ds.txt para eliminar el escenario.

Consulte la imagen a continuación para mayor claridad:

ingrese la descripción de la imagen aquí

Py-Coder avatar May 01 '2018 12:05 Py-Coder

Mover una confirmación nuevamente al área de preparación depende de su última confirmación. Si su última confirmación fue la primera (o inicial) del repositorio, entonces debe ejecutar

git update-ref -d HEAD

Si su última confirmación no es la primera (o inicial), ejecute

git reset HEAD~
Sanyam Gupta avatar Mar 29 '2021 10:03 Sanyam Gupta