Deshacer cambios locales en un solo archivo en Git

John Wachira 12 julio 2022
  1. Revertir un archivo confirmado previamente en Git
  2. Deshacer cambios en archivos preparados y no preparados en Git
  3. el comando git restore
Deshacer cambios locales en un solo archivo en Git

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.

  1. Árbol de trabajo
  2. Área de preparación
  3. 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.

  1. Deshacer un cambio en el repositorio

    $ git restore --source [commit id] path/to/file
    
  2. Desorganizar un archivo

    $ git restore --staged path/to/file
    
  3. 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 Wachira avatar John Wachira avatar

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.

LinkedIn

Artículo relacionado - Git Checkout