Deshacer cambios locales en un solo archivo en Git
- Revertir un archivo confirmado previamente en Git
- Deshacer cambios en archivos preparados y no preparados en Git
-
el comando
git restore
En este artículo, discutiremos cómo podemos usar comandos como git checkout
y git reset
para revertir nuestros archivos a una versión de nuestro agrado. Aunque Git facilita el restablecimiento de archivos y repositorios, el concepto de deshacer cambios en Git es un poco más complicado de lo que piensa.
Deshacer cambios en un repositorio es diferente de deshacer cambios en un conjunto de archivos en los que está trabajando localmente.
Los comandos git checkout
, git reset
y git restore
son útiles cuando se revierten archivos a una versión anterior. Pero antes de sumergirnos en estos mandamientos, debemos preguntarnos; ¿Qué significa restablecer un archivo?
Vale la pena señalar que restablecer un archivo puede ser diferente para usted en diferentes circunstancias. Puede encontrar que un comando git checkout
no cumple con sus expectativas.
Es diferente para las personas que desean revertir los cambios ya confirmados y aquellos que desean deshacer los cambios para que el archivo se sincronice con el repositorio.
Aquí hay algunos términos que debe tener en cuenta para comprender las diferencias.
- Árbol de trabajo
- Área de preparación
- Repositorio
Revertir un archivo confirmado previamente en Git
Un caso común es que hemos comprometido un archivo y queremos deshacer los cambios. Usaremos el comando git checkout
en tal escenario.
Anteriormente usamos el comando para cambiar de rama, pero eso es solo una parte de lo que puede hacer.
Podemos usar el comando para deshacer cambios en un archivo que ya hemos confirmado. Hará coincidir los archivos de nuestro árbol de trabajo con el archivo en cualquier punto del historial de nuestro repositorio.
Podemos especificar una rama, una etiqueta y un commit.
A continuación se muestra la mejor manera de ejecutar el comando.
$ git checkout [commit ID] -- path/to/file
Al ejecutar el comando anterior, apuntamos a Git a una ID del commit específica en nuestro repositorio. Además, hemos agregado la ruta a un solo archivo.
Ejecutar el comando anterior solo actualizará el archivo en nuestro árbol de trabajo. Tendremos que preparar el archivo y hacer una nueva confirmación.
Deshacer cambios en archivos preparados y no preparados en Git
Nuestra área de preparación contiene los archivos que queremos confirmar. Para deshacer los cambios en un archivo preparado, ejecute el comando git reset
para deshacerlo.
$ git reset HEAD path/to/file
Ejecutamos el siguiente comando para deshacer los cambios locales antes de preparar un archivo.
$ git checkout -- path/to/file
El comando es similar al primero, excepto que omite nuestro ID del commit.
el comando git restore
Las versiones más nuevas de Git nos permiten usar el comando git restore
para deshacer los cambios en un solo archivo.
Estas son algunas de las formas en que podemos usar el comando.
-
Deshacer un cambio en el repositorio
$ git restore --source [commit id] path/to/file
-
Desorganizar un archivo
$ git restore --staged path/to/file
-
Deshacer cambios en una copia de trabajo
$ git restore path/to/file
A menudo nos encontramos revirtiendo commits en lugar de restablecer un solo archivo. Sin embargo, cuando lo necesita, es bastante sencillo.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedInArtículo relacionado - Git Checkout
- Consultar una sucursal remota de Git
- Diferencia entre Git Checkout --Track Origin/Branch y Git Checkout -B Branch Origin/Branch
- Diferencia entre Git Checkout y Git Clone
- Git Checkout VS Pull
- Ignorar cambios de archivos locales en Git
- Retroceder a una confirmación anterior en un repositorio público de Git