La caja de herramientas de git está llena de comandos útiles. Estos comandos pueden ser algo similares en naturaleza y es posible que necesite ayuda para comprenderlos por completo. Los comandos «git restore» y «git reset» son posiblemente los más útiles dentro de una caja de herramientas de git.
Git es un sistema vasto. También tiene muchos otros comandos, como git checkout y git revert. Todos estos comandos permiten a una persona deshacer algún tipo de cambio en el repositorio.
Dado que todos estos comandos son muy similares, a veces puede ser un poco confuso decidir cuál usar en un escenario de desarrollo determinado. Git también es difícil de aprender, por lo que cualquier explicación valiosa será útil.
En este artículo, proporcionaré todas las diferencias que necesita saber entre los comandos git reset y git restore. De esta manera, puede tomar una decisión informada sobre cuál usar.
¡Así que vamos a sumergirnos!
¿Qué significa la restauración de Git?
Restaurar Git es un comando en la caja de herramientas de git que se usa para restaurar archivos en el árbol de trabajo, ya sea desde un índice o desde otra confirmación. Git restore no actualiza la rama actual y se puede usar para restaurar archivos en el índice desde otra confirmación.
Esta herramienta es muy útil si desea utilizar otro código de una confirmación que sea diferente de la confirmación de la rama actual.
El comando git restore permite eliminar o incluso descartar cambios locales no confirmados. Básicamente, el comando se puede usar para deshacer los efectos de git add y eliminar los cambios que realizó anteriormente en el área de preparación.
El comando de restauración también se usa para descartar cambios locales en un archivo. Esto conduciría a la restauración de su último estado comprometido.
La restauración de Git se puede usar en tres situaciones diferentes. Sin embargo, esto depende de su situación actual. Puede revertir el trabajo en la copia de trabajo o en el índice, o puede hacer ambas cosas. Veamos cómo se usa en cada situación:
git restaurar [–worktree]
El comando anterior sobrescribirá los archivos en su copia de trabajo junto con el contenido del archivo de índice. Básicamente, revierte los cambios en la copia de trabajo.
git restore –staged
Este se usa para deshacer cambios en el área de preparación. Aunque elimina el archivo del área de ensayo, deja intactas las modificaciones reales.
git restore –staged –worktree –source HEAD
Este comando podrá restaurar los cambios tanto en el área de preparación como en el árbol de trabajo.
Además, también puede usar git restore –source=
¿Qué sucede cuando reinicias Git?
cuando golpeas reiniciar, primero moverá HEAD y actualizará el índice con el contenido de la confirmación a la que apunta actualmente HEAD. A continuación, actualizará el directorio de trabajo con el contenido del índice. De esta forma, posiblemente destruirá el contenido que se modificó en el directorio de trabajo.
Entonces, lo que básicamente hace git reset es que le permite a una persona deshacer algunos cambios que son locales para la computadora. Cuando haya terminado el trabajo y quiera rebobinarlo, puede usar el comando de reinicio. Esto significa que puedes empezar de nuevo.
Al usar el comando git reset, puede saltar de un lado a otro entre el contenido de varias confirmaciones. ¡Es literalmente como viajar en el tiempo!
Esta operación ayuda a cambiar el historial de confirmaciones. Puede agregar o eliminar confirmaciones de la rama usando esto para actualizar la rama.
Hay tres opciones de restablecimiento de git: duro, suave y mixto. Cada una de estas tres variaciones tiene un impacto en árboles específicos que usa git para manejar archivos y su contenido.
Así es como funcionan las diferentes opciones de reinicio de git:
- Suave
Esto solo cambia el HEAD. No provoca ningún cambio en los archivos provisionales en el índice o en los archivos de trabajo. - Mezclado
Éste mueve HEAD y actualiza el índice. Lo actualiza con el contenido de la revisión a la que ahora apunta HEAD. - Duro
Esto vive el HEAD y no solo actualiza el índice sino también el directorio de trabajo. Sin embargo, esta es la única versión de git reset que puede provocar la pérdida de datos.
Es importante tener en cuenta que el comando de reinicio no se puede usar para mover archivos en la copia de trabajo. Los archivos no solo se copian en una confirmación diferente, sino que también se eliminan de la copia de trabajo y se restauran como archivos nuevos en la confirmación específica que desea ahora.
Cuando haya realizado algunos cambios inesperados en un archivo, no es necesario eliminar el archivo. Puede deshacer todos los cambios realizados en un archivo, pero este comando no deshace todo el archivo.
Vscode en el escritorio.
¿Cuál es la diferencia entre Git Restore y Git Reset?
La principal diferencia entre los dos comandos es que git restore se usa para restaurar archivos en el árbol de trabajo desde el índice u otra confirmación. Esto no actualiza la rama.
Mientras que el reinicio de git se usa para actualizar su marca. Al mover la sugerencia, puede agregar o eliminar confirmaciones de la rama.
Sólo hay unos pocos diferencias entre estos comandos y se encuentran en sus funciones. El restablecimiento de git se cruza con la restauración de git.
Se utiliza para restablecer el índice para descartar cambios en el árbol de trabajo. Se usa comúnmente con la opción suave, esto restablece el índice y deja el árbol de trabajo sin cambios.
El propósito de git restore es solo actualizar el árbol de trabajo y también puede realizar cambios de preparación. Sin embargo, debe tenerse en cuenta que restaurar es un comando experimental, por lo que podría perder parte de su funcionalidad.
Este restablecimiento de git podrá completarse con éxito solo si el directorio de trabajo está limpio, lo que significa que no se deben confirmar cambios. Por otro lado, la restauración de git terminará fallando si el directorio de trabajo está limpio.
Ambos comandos pueden afectar al HEAD. Sin embargo, git restore solo puede afectar indirectamente a HEAD. Puede hacerlo a través del staging area.
Si bien git reset tiene la capacidad de trabajar directamente con el índice y con HEAD.
Además, git reset se puede usar para modificar el repositorio local. Aunque, esto solo puede suceder si uno no ha empujado nada todavía.
Si ha enviado al servidor remoto, git reset modificará el área de preparación y la copia de trabajo, pero no podrá modificar el repositorio. Este comando es útil si desea deshacer cambios locales pero no desea volver a introducirlos.
Comparativamente, git restore es todo lo contrario. Esto se debe a que solo se puede usar para modificar el repositorio y no el área de preparación o la copia de trabajo local. No puede afectar ninguna confirmación que hayas enviado.
¿Es Git-Restore seguro?
Tanto git-restore como git reset se pueden usar para modificar la copia de trabajo y el área de ensayo. Sin embargo, solo git reset puede modificar el repositorio. En términos de esto, es más probable que git restore sea la opción más segura si desea volver al trabajo local.
Si está utilizando git reset con la opción difícil, eso también podría provocar la pérdida de datos. Es por eso que git reset se considera un método peligroso porque siempre existe el riesgo de perder el trabajo.
Además, git restore es nuevo y se estableció en agosto de 2019. Mientras que git reset es muy antiguo, data de 2005.
Ha estado en el conjunto de herramientas de Git durante mucho tiempo. Para ser honesto, ambos comandos tienen la capacidad de destruir el trabajo no guardado.
Como git-restore es un comando más nuevo, es relativamente más avanzado, lo que lo hace más seguro de usar en comparación con el comando de reinicio.
El comando git-restore está marcado como experimental en el kit de herramientas de git, por lo que se debe tener en cuenta que su comportamiento puede cambiar. Esta es una de las razones por las que la gente tiene miedo de usarlo.
Sin embargo, incluso si está marcado como experimental, no es un comando muy destructivo y puede usarse efectivamente. Por lo tanto, no tiene que preocuparse por perder sus archivos, como lo haría con el comando de reinicio.
Así es como se ve la programación/codificación.
¿Qué es Git Revert?
Git revertir es el comando que se puede considerar como un comando de tipo deshacer. Aunque, no es una operación de deshacer tradicional.
¿Entonces, cómo funciona? No se usa para eliminar la confirmación del historial del proyecto, sino que determina cómo invertir los cambios introducidos por la confirmación.
Luego agrega una nueva confirmación con el contenido inverso resultante. Esto evita que git pierda su historial. Esto lo hace muy importante para la integridad del historial de revisiones y también para una colaboración confiable.
En resumen, el comando git revert es básicamente una operación de deshacer de avance que proporciona un método seguro para deshacer cambios. Una reversión crea una nueva confirmación que invierte los cambios especificados.
Comparemos git revert con git reset. Si bien git revert se considera una forma segura de deshacer los cambios, se cree que git reset es un método peligroso o arriesgado. El riesgo real es perder el trabajo con git reset.
El comando git reset nunca eliminará una confirmación, pero las confirmaciones pueden quedar huérfanas. Esto significa que no hay una ruta directa desde el árbitro para acceder a ellos. Estas confirmaciones huérfanas serán eliminadas permanentemente por Git.
Como los dos comandos tienen objetivos distintos, también se implementan de manera diferente. Restablecer elimina por completo un conjunto de cambios. Mientras que la reversión mantiene el conjunto de cambios original y utiliza una nueva confirmación para aplicar el deshacer.
Eche un vistazo a esta tabla con ejemplos para ayudar a diferenciar entre git reset y revert:
Git Reset ScopesFunctionsCommit LevelSe usa cuando necesita descartar confirmaciones en una rama privada
o para desechar los cambios no confirmados. Nivel de archivo Se utiliza para ayudar a desorganizar un archivo. Git Revert ScopesFunctionsCommit LevelUsed para deshacer confirmaciones en una rama pública. Nivel de archivo No es aplicable aquí. ¡Espero que esto ayude!
Aquí hay un video que explica las funciones de git reset y git revert con más detalle:
¡Es bastante informativo!
Pensamientos finales
Se puede decir que la principal diferencia entre el comando git reset y git restore es que el primero se usa para actualizar tu rama. Puede agregar o eliminar confirmaciones. Mientras que este último se usa para restaurar archivos en el árbol de trabajo desde el índice o desde otra confirmación.
El restablecimiento de git solo se puede completar con éxito si el directorio de trabajo está limpio. Por otro lado, una restauración de git fallará si el directorio de trabajo está limpio y no hubo cambios.
El comando de restauración es mucho más seguro que el comando de reinicio porque es más avanzado. Se puede utilizar para modificar la copia de trabajo y el área de ensayo. Solo puede modificar el repositorio usando el comando git reset.
También hay muchos más comandos útiles. Por ejemplo, git revert crea nuevas confirmaciones en lugar de eliminar las anteriores. La nueva confirmación invierte los cambios.
¡Espero que este artículo haya ayudado a aclarar sus inquietudes con respecto a los comandos del kit de herramientas de git!
Usted también puede estar interesado en:
CUÁL ES LA DIFERENCIA ENTRE UN MAUL Y WARHAMMER (REVELADO)
ESPADA VS SABLE VS CUTLASS VS CIMITAR (COMPARACIÓN)
RAM VS MEMORIA UNIFICADA DE APPLE (CHIP M1)