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

¿Cuál es la diferencia entre git reset -mixed, -soft y -hard?
En GIT, cada compromiso está vinculado a la confirmación anterior, y el jefe apunta a la confirmación más reciente en la rama de trabajo. La historia del comet se almacena como un árbol de comodidad. Sin embargo, a veces los desarrolladores deben modificar el historial de confirmación. Para este propósito, el "reinicio de $ gitEl comando se utiliza para modificar el historial del repositorio de git y corregir 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 los compromisos, todas las opciones disponibles son diferentes entre sí. Todos modifican el historial de git y mueven la cabeza hacia atrás. Además, manejan los cambios de manera diferente, como:

  • El "-suaveOpción "utilizada con el"reinicio de $ git"Comando para mantener los archivos y devolver los cambios de confirmación al índice de puesta en escena GIT.
  • "$ git reins -mixed"Se usa para deshacer los cambios de confirmación y eliminar el archivo del índice de puesta en escena sin eliminarlo del directorio de trabajo.
  • El "-duroOpción "con el"reinicio de $ gitEl comando se usa para eliminar todos los cambios y eliminarlos del directorio de trabajo local.

Tomemos un ejemplo para ver cómo el "reinicio de $ gitEl comando funciona con diferentes opciones!

Paso 1: Vaya al repositorio Git deseado

Primero, muévase a su repositorio Git deseado utilizando el "cd" dominio:

$ CD "C: \ git \ test_repo"

Paso 2: Crear archivo

Ahora, ejecute el comando otorgado para crear un archivo:

$ touch archivo4.TXT

Paso 3: Agregar archivo al índice de puesta en escena

Utilizar el "Git AgregarComando "para agregar el archivo recién generado al índice de puesta en escena:

$ git agregar archivo4.TXT

Paso 4: Cambios de confirmación

A continuación, agregue todos los cambios al repositorio de trabajo ejecutando el "Git Commit" dominio:

$ git commit -m "archivo4 agregado"

Paso 5: Verifique el registro de git

Luego, consulte el historial de registro de git para ver los últimos compromisos que se agregaron:

Log de $ git

En la salida a continuación, se puede ver que se muestran todas las últimas confirmaciones adicionales y el "CABEZA"Está señalando el compromiso reciente:

Nota: Para ver la posición de apuntar actual de la cabeza de una mejor manera, ejecute el "Git log"Comando junto con el"-una línea" bandera:

$ git log -enneline

A continuación, la salida dada muestra la lista de comandos SHA hash con mensajes de confirmación:

Paso 6: Use el comando Git RESET -SOFT

Para revertir los cambios adicionales del repositorio de git al índice de puesta en escena, utilice el "reinicio de git"Comando junto con el"-suaveOpción ", y especifique la posición de la cabeza deseada donde se requiere para mover el puntero:

$ git restablecimiento -cabeza -suave ~ 1

Paso 7: Verifique el estado de git

Ahora, verifique la posición de revertir de la cabeza, verifique el estado del repositorio de git:

Estado de $ git

Se puede ver que el "RESET GIT -SOFT"El comando ha devuelto los cambios de confirmación al índice de puesta en escena git. Además, el "Archivo4.TXT"El archivo ahora está en el índice de puesta en escena git y debe comprometerse:

Paso 8: Verifique el registro de git

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

$ git log -enneline

Aquí, la cabeza apunta al "Archivo3" comprometerse:

Paso 9: Use el reinicio Git - Comando mixto

Para deshacer los cambios comprometidos y eliminar los archivos del área de puesta en escena sin eliminar de ellos del directorio de trabajo, ejecute el "$ git reins -mixed"Comando junto con la posición de cabeza requerida de la confirmación:

$ git restablecimiento -cabeza mezcla ~ 1

Paso 10: Verifique el estado de git

Vea los cambios recientemente agregados verificando el estado del repositorio de git:

Estado de $ git

Se puede observar que los cambios de confirmación especificados se eliminan del área de estadificació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 Git junto con el hash SHA:

$ git log -enneline

Paso 12: Use el reinicio Git - Comando duro

Para eliminar los cambios adicionales del directorio de trabajo local Git, ejecute el "$ git rein" dominio:

$ git reinicio -cabeza -hard ~ 1

Paso 13: Verifique el puntero de la cabeza revertido

Para verificar el puntero de la cabeza, vuelva a la posición especificada, ejecute el "Git log" dominio:

$ git log -enneline

La siguiente salida muestra que la cabeza apunta al "Archivo1 agregado" comprometerse:

Paso 14: Verifique el estado de git

Para ver los cambios adicionales, verifique el estado de git:

Estado de $ git

Se puede ver que no tenemos ninguna pista y cambios pendientes de "Archivo2.TXT" archivo. Por lo tanto, file2.TXT se ha eliminado por completo:

Paso 15: Verifique la lista de contenido de 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 opciones de reinicio de restablecimiento, -soft y -hard.

Conclusión

El "reinicio de gitEl comando se utiliza para restablecer los cambios, modificar el historial del repositorio de git y corregir errores. El "RESET GIT -SOFT"El comando mantiene los archivos y devuelve los cambios de confirmación al área de puesta en escena de GIT. En contraste, el "GIT RESET -MIXED"El comando deshace los cambios de confirmación y elimine el archivo del índice de puesta en escena sin eliminarlo del directorio de trabajo. Para eliminar todos los cambios y eliminarlos del área de trabajo de GIT, el "RESETO GIT -HARDEl comando se puede usar. Este artículo ilustra la diferencia entre Git Reset -mixed, -soft y -hard.