Chuck's Academy

GIT

Deshaciendo Cambios en Git

A lo largo del desarrollo, cometeremos errores. Afortunadamente, Git ofrece diversas herramientas para deshacer cambios y corregir errores. En este capítulo, exploraremos cómo deshacer modificaciones en archivos, revertir commits, y restaurar el estado de un proyecto a versiones anteriores. Al final de este capítulo, sabrás cómo manejar situaciones complejas y mantener el control sobre el historial de tu repositorio.

Deshacer Cambios en Archivos No Commiteados

Cuando realizas cambios en archivos pero aún no los has agregado al área de preparación, puedes deshacer esos cambios fácilmente y restaurar los archivos a su estado original.

Para restaurar un archivo modificado sin añadirlo al área de preparación, usa el comando:

bash
"El comando 'git restore seguido del nombre del archivo' deshace los cambios no committeados en ese archivo, devolviéndolo a su estado previo."

Si ya has agregado el archivo al área de preparación pero deseas deshacer esa acción, puedes usar:

bash
"El comando 'git restore --staged seguido del nombre del archivo' quita ese archivo del área de preparación, pero mantiene los cambios en el área de trabajo."

Revertir Commits

En ocasiones, un commit contiene errores o cambios no deseados. Git ofrece dos maneras principales de manejar esta situación: git reset y git revert.

Git Reset

El comando git reset te permite mover el puntero de tu rama a un commit anterior, eliminando los commits posteriores en el proceso. Esto es útil cuando quieres "borrar" commits recientes y volver a un estado anterior.

bash
"Con el comando 'git reset --hard seguido del identificador del commit' regresas a un estado anterior del repositorio, eliminando los commits más recientes y descartando los cambios en el área de trabajo."

Si no quieres perder los cambios, puedes usar la opción --soft, que preserva los archivos modificados en tu directorio de trabajo:

bash
"El comando 'git reset --soft' mantiene los cambios en el área de trabajo mientras regresa el puntero del commit a una versión anterior."

Git Revert

A diferencia de git reset, el comando git revert no borra commits. En su lugar, crea un nuevo commit que "revierta" los cambios realizados en un commit anterior. Esto es útil cuando necesitas mantener el historial de cambios pero quieres anular un commit específico.

bash
"El comando 'git revert seguido del identificador del commit' crea un nuevo commit que deshace los cambios realizados en ese commit, sin alterar el historial previo."

Recuperar Commits Eliminados

Si accidentalmente borraste commits usando git reset, puedes recuperarlos utilizando el comando git reflog. Este comando rastrea todas las acciones recientes realizadas en el repositorio, permitiéndote restaurar commits eliminados.

bash
"El comando 'git reflog' muestra un historial de todas las acciones recientes, incluyendo commits eliminados, cambios de rama y resets. Esto te permite encontrar el commit perdido."

Una vez que encuentres el commit que deseas recuperar, puedes usar git reset o git checkout para restaurarlo.

Utilizando Git Stash para Guardar Cambios Temporales

Si estás trabajando en cambios pero necesitas cambiar de contexto o rama rápidamente, puedes "guardar" temporalmente esos cambios usando git stash. Esto guarda tus modificaciones sin hacer un commit, permitiéndote recuperarlas más tarde.

Para guardar los cambios actuales:

bash
"El comando 'git stash' guarda temporalmente tus cambios actuales, quitándolos del área de trabajo y permitiéndote cambiar de rama o realizar otras tareas sin perder tu trabajo."

Para recuperar los cambios guardados:

bash
"El comando 'git stash pop' recupera los cambios guardados previamente con git stash, devolviéndolos al área de trabajo."

Puedes ver la lista de todos los stashes guardados usando:

bash
"El comando 'git stash list' muestra todos los cambios que has guardado temporalmente con git stash."

Conclusión

En este capítulo, hemos aprendido cómo deshacer cambios en Git, desde revertir modificaciones en archivos individuales hasta recuperar commits eliminados. Con estas herramientas, puedes manejar errores sin miedo, sabiendo que siempre puedes volver a un estado anterior. En el próximo capítulo, exploraremos cómo trabajar con etiquetas en Git y cómo utilizarlas para marcar versiones importantes en el historial de un proyecto.


Pregúntame lo que sea