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 gitEn 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íneaEl 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 GitSe 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íneaAquí, 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 GitSe 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íneaEl 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 GitSe 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:
$ lsComo 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.