Cómo revertir archivos y carpetas individuales a versiones anteriores en Git

Cómo revertir archivos y carpetas individuales a versiones anteriores en Git

Git es una herramienta poderosa para realizar un seguimiento de cada versión de su base de código y, a menudo, es necesario volver atrás y restaurar versiones anteriores de los archivos. Git puede revertir todas las confirmaciones o restablecer un repositorio completo, pero también puede revertir los cambios en un solo archivo o carpeta.

Devolver vs Restablecer

Normalmente, cuando «reviertes» una confirmación, Git aplica la nueva confirmación, aplica los cambios opuestos y la revierte efectivamente. Esto es útil si comete un error y necesita «eliminar» ese compromiso aunque todavía esté en el historial.

Restablecer un repositorio es un poco diferente. Solo puede deshacer una confirmación a la vez, pero si lo hace git reset, Git revertirá el estado del repositorio en el momento en que se realizó la confirmación. Esto se hace por muchas razones, generalmente para eliminar confirmaciones o corregir el historial de sucursales.

Ambas operaciones funcionan en todo el repositorio, pero también puede usar comandos similares para realizar las mismas acciones en archivos o carpetas individuales. Por ejemplo, usar git reset en un solo archivo devolverá ese archivo al estado en el que se encontraba cuando se realizó la confirmación. Esto es útil si solo desea seleccionar una versión anterior de un archivo de su historial de Git.

Ver versiones anteriores en Git

La solución de baja tecnología para revertir un archivo a su estado anterior es bastante simple: Github y la mayoría de los otros servidores Git realizan un seguimiento de su historial de archivos, y simplemente puede hacer clic en un compromiso y hacer clic en Examinar archivos para ver el archivo. una instantánea de su repositorio del pasado. A continuación, puede descargar el archivo o copiar el texto.

Esto es especialmente útil si está trabajando con archivos de código de gran tamaño y desea revisar versiones anteriores de las funciones que ha escrito. Probablemente no quiera devolverlo todo en este caso, solo una función. Puede copiar el código para esta función sin tocar la CLI de Git.

Restablecer un archivo a una versión anterior en Git

En este repositorio de prueba, hicimos una confirmación que editó el README y agregó un nuevo archivo. Queremos revertir los cambios realizados en README, pero no queremos restablecer todo el repositorio a la confirmación original.

La solución es restablecer el LÉAME solo revisando la versión anterior de ese archivo. El comando Git checkout hace muchas cosas, como cambiar de rama, pero se usa principalmente para cargar archivos con un ID de rama o compromiso determinado.

Para restablecer un archivo a una versión anterior, debe encontrar el ID de confirmación desde el que desea restablecer. Puede usar git log el alcance de un solo archivo para ver solo los cambios realizados en ese archivo:

git log README.md

Copie la identificación de confirmación y luego ejecútela git checkout con la identificación y la ruta del archivo:

git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md

Esto volverá a cambiar el archivo, pero aún no confirmará los cambios. Puedes editarlo y confirmarlo cuando estés listo.

En este ejemplo git checkout , los cambios se preparan para la próxima confirmación. Si no desea confirmarlos, puede descartar los cambios. Esto puede ser útil para descargar temporalmente versiones anteriores de archivos sin usar Github.

Reversión de cambios a archivos individuales

Del mismo modo, si desea revertir los cambios en una sola confirmación, puede hacerlo con git revert. Sin embargo, no hay forma de aplicarlo a un archivo, pero simplemente puede revertir los cambios si la confirmación afecta a otros archivos.

Use esta --no-commit marca para habilitar la edición de la «compromiso revertido» que Git crea automáticamente.

git revert de8564b131ca6a15a7e7c73f5ef156b119cc0b93

Esto le permitirá modificar los archivos antes de completar la devolución. Si hay cambios no deseados, puede eliminarlos a través de su cliente o con un archivo  git checkout.

git checkout -- file

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *