¿Cuál es la diferencia entre git reset -mixed, -soft y -hard?

Cual Es La Diferencia Entre Git Reset Mixed Soft Y Hard



En Git, cada confirmación está vinculada a la confirmación anterior y HEAD apunta a la confirmación más reciente en la rama de trabajo. El historial de confirmaciones se almacena como un árbol de confirmaciones. Sin embargo, a veces los desarrolladores necesitan modificar el historial de confirmaciones. Para tal efecto, el “ $ git restablecer El comando ” se utiliza para modificar el historial del repositorio de Git y corregir los errores que se cometieron.

Este artículo explicará brevemente la diferencia entre git reset –hard, –soft y –mixed.

¿Cuál es la diferencia entre git reset -mixed, -soft y -hard?

Git proporciona múltiples opciones de reinicio. Sobre la base de cómo manejan las confirmaciones, todas las opciones disponibles son diferentes entre sí. Todos modifican el historial de Git y mueven HEAD hacia atrás. Además, manejan los cambios de manera diferente, como por ejemplo:







  • Él ' -suave ” opción utilizada con el “ $ git restablecer ” para conservar los archivos y devolver los cambios de confirmación al índice de ensayo de Git.
  • $ git reset –mixto ” se utiliza para deshacer los cambios de confirmación y eliminar el archivo del índice de ensayo sin eliminarlo del directorio de trabajo.
  • Él ' -duro opción ” con el “ $ git restablecer El comando ” se usa para eliminar todos los cambios y eliminarlos del directorio de trabajo local.

Tomemos un ejemplo para ver cómo el “ $ git restablecer ¡El comando ” funciona con diferentes opciones!



Paso 1: Ir al repositorio Git deseado

Primero, muévase al repositorio de Git deseado utilizando el ' discos compactos ' dominio:



$ discos compactos 'C:\Ir \t es_repo'





Paso 2: Crear archivo

Ahora, ejecute el siguiente comando para crear un archivo:

$ tocar Archivo4.txt



Paso 3: Agregar archivo al índice de ensayo

Utilizar el ' añadir ” comando para agregar el archivo recién generado en el índice de ensayo:

$ añadir Archivo4.txt

Paso 4: Confirmar cambios

A continuación, agregue todos los cambios al repositorio de trabajo ejecutando el comando “ git cometer ' dominio:

$ git cometer -metro 'Archivo4 añadido'

Paso 5: verifique el registro de Git

Luego, verifique el historial de registro de Git para ver las últimas confirmaciones que se agregaron:

$ registro de git

En el resultado a continuación, se puede ver que se muestran todas las últimas confirmaciones agregadas y el ' CABEZA ” apunta a la confirmación reciente:

Nota: Para verificar mejor la posición de puntería actual del HEAD, ejecute el comando “ registro de git comando ” junto con el “ -una línea ' bandera:

$ registro de git --en línea

El siguiente resultado muestra la lista de hash SHA de confirmación con mensajes de confirmación:

Paso 6: Usa el comando git reset –soft

Para revertir los cambios agregados del repositorio de Git al índice de ensayo, utilice el ' reiniciar ” junto con el comando “– suave ” y especifique la posición deseada del CABEZAL donde se requiere mover el puntero:

$ reiniciar --suave CABEZA ~ 1

Paso 7: Comprobar el estado de Git

Ahora, verifique la posición de reversión de HEAD, verifique el estado del repositorio de Git:

$ estado de Git

Se puede ver que el “ git reset –suave El comando ha devuelto los cambios de confirmación al índice de ensayo de Git. Además, el “ Archivo4.txt El archivo ahora está en el índice de ensayo de Git y debe confirmarse:

Paso 8: verifique el registro de Git

Para ver la posición actual de HEAD, ejecute el comando dado junto con el ' -una línea ' opción:

$ registro de git --en línea

Aquí, la CABEZA está apuntando al “ Archivo3 ' comprometerse:

Paso 9: Usa git reset — Comando mixto

Para deshacer los cambios confirmados y eliminar los archivos del área de ensayo sin eliminarlos del directorio de trabajo, ejecute el comando “ $ git reset –mixto Comando junto con la posición HEAD requerida de la confirmación:

$ reiniciar --mezclado CABEZA~ 1

Paso 10: Comprobar el estado de Git

Vea los cambios recién agregados al verificar el estado del repositorio de Git:

$ estado de Git

Se puede observar que los cambios de confirmación especificados se eliminan del área de preparación. Sin embargo, se colocan en el área de trabajo:

Paso 11: verifique el registro de Git

Verifique el historial de registro de referencia del repositorio de Git junto con el hash SHA:

$ registro de git --en línea

Paso 12: Usa git reset — Comando duro

Para eliminar los cambios agregados del directorio de trabajo local de Git, ejecute el comando ' $ git reset –difícil ' dominio:

$ reiniciar --duro CABEZA ~ 1

Paso 13: Verifique el puntero HEAD revertido

Para verificar el puntero HEAD, vuelva a la posición especificada, ejecute el ' registro de git ' dominio:

$ registro de git --en línea

El siguiente resultado muestra que HEAD está apuntando al ' Archivo1 agregado ' comprometerse:

Paso 14: Comprobar el estado de Git

Para ver los cambios agregados, verifique el estado de Git:

$ estado de Git

Se puede ver que no tenemos ninguna pista y cambios pendientes de “ Archivo2.txt ' expediente. Por lo tanto, File2.txt se eliminó por completo:

Paso 15: verificar la lista de contenido del repositorio

Para verificar la lista de contenido del repositorio, ejecute el ' ls ' dominio:

$ ls

Como puede ver, el “ Archivo2.txt El archivo ” no existe en el directorio actual:

Hemos explicado la diferencia entre las opciones git reset –mixed, –soft y –hard.

Conclusión

Él ' reiniciar El comando ” se utiliza para restablecer los cambios, modificar el historial del repositorio de Git y corregir errores. Él ' git reset –suave El comando mantiene los archivos y devuelve los cambios de confirmación al área de ensayo de Git. En cambio, el “ reinicio de git – mixto El comando deshace los cambios de confirmación y elimina el archivo del índice de ensayo sin eliminarlo del directorio de trabajo. Para eliminar todos los cambios y eliminarlos del área de trabajo de Git, el botón ' git reset – duro Se puede utilizar el comando ”. Este artículo ilustró la diferencia entre git reset –mixed, –soft y –hard.