Git es una herramienta poderosa para realizar un seguimiento de cada versión de su base de código y, a menudo, es necesario retroceder en el tiempo y restaurar versiones anteriores de archivos. Git puede revertir confirmaciones completas o restablecer todo el repositorio, pero también puede deshacer cambios en un solo archivo o carpeta.
volver vs restablecer
Normalmente, cuando «deshaces» una confirmación, Git aplica una nueva confirmación que aplica los cambios opuestos y, de hecho, la cancela. Esto es útil si cometió un error y necesita «eliminar» esa confirmación, aunque todavía esté en el registro.
Restablecer el repositorio es un poco diferente. Solo puede deshacer una confirmación a la vez, pero si crea un archivo git reset
, Git cambiará por completo el estado del repositorio al momento en que se comprometió. Esto se hace por muchas razones, generalmente para eliminar confirmaciones o reparar el historial de la rama.
Ambos procesos funcionan en todo el repositorio, pero también puede usar comandos similares para realizar las mismas acciones en archivos o carpetas individuales. Por ejemplo, usando git reset
En un solo archivo, ese archivo volverá a ser lo que era cuando se realizó la confirmación. Esto es útil si solo desea elegir una versión anterior del archivo del historial de Git.
Relacionado: ¿Cómo funciona realmente Git Reset? Explicación del reinicio suave, duro y mixto
Relacionado: Cómo corregir, editar o deshacer confirmaciones de Git (Cambiar registro de Git)
Mirando versiones anteriores en Git
La solución de baja tecnología para hacer que un archivo vuelva a ser como era antes es bastante simple: Github y la mayoría de los demás servidores de Git realizan un seguimiento de su historial de archivos, y simplemente hace clic en confirmar y hace clic en Examinar archivos para ver un archivo de instantánea de tu repositorio del pasado. A continuación, puede descargar el archivo o copiar el texto sobre él.
Esto es especialmente útil si está trabajando con archivos de código grandes y desea ver versiones anteriores de funciones que escribió. Probablemente no desee rehacer todo en este caso, solo la función única. Puede copiar el código de 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ó README y agregó un nuevo archivo. Queremos revertir los cambios realizados en README, pero no queremos restablecer todo el repositorio a la confirmación inicial.
La solución es restablecer el LÉAME simplemente revisando una versión anterior de este archivo. Chorro checkout
El comando hace muchas cosas, como cambiar de rama, pero se usa principalmente para descargar archivos a los que se les asigna el ID de rama o confirmación.
Para restablecer un archivo a una versión anterior, deberá encontrar el ID de confirmación desde el momento en que desea restablecerlo. puedes usar git log
Para esto, especifique un ámbito para que un archivo muestre solo los cambios realizados en ese archivo:
git log README.md
Copie la identificación de confirmación, luego ejecute git checkout
Con ID y ruta de archivo:
git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md
Esto cambiará el archivo nuevamente, pero aún no hará los cambios. Eres libre de modificarlo y mantenerlo cuando estés listo.
En este ejemplo, git checkout
Organiza los cambios para la próxima confirmación. Si no desea comprometerse con él, puede descartar los cambios. Esto puede ser útil para descargar temporalmente versiones anteriores de archivos sin usar Github.
Deshacer cambios en archivos individuales
Del mismo modo, si desea deshacer los cambios en una sola confirmación, puede hacerlo con git revert
. No hay forma de aplicarlo a un archivo, pero simplemente puede descartar los cambios si la confirmación afecta a otros archivos.
utilizar el --no-commit
Una bandera para permitir la edición del «echo de confirmación» generado automáticamente por Git.
git revert de8564b131ca6a15a7e7c73f5ef156b119cc0b93
Esto le permitirá cambiar archivos antes de que finalice la acción de deshacer. Si hay cambios no deseados en las etapas, puede eliminarlos a través de su cliente o con un archivo git checkout
.
git checkout -- file
More Stories
El código en los datos previos al entrenamiento mejora el rendimiento del LLM en tareas que no son de codificación
Un marco para resolver ecuaciones diferenciales parciales equivalentes puede guiar el procesamiento y la ingeniería de gráficos por computadora
Epiroc ha lanzado una nueva plataforma de perforación de producción de pozos largos