¿Cómo deshacer y rehacer cambios en Git?

| Última modificación: 24 de enero de 2025 | Tiempo de Lectura: 3 minutos
0
(0)

Todo hay que decirlo y es que saber usar Git te da un control excelente sobre cada línea de código que escribes. De hecho, es tan bueno que cuando cometes un error y necesitas revertirlo, hay unas herramientas que te brinda para deshacer y rehacer cambios en Git sin llegar a perder el control. En caso de que no me creas, aquí te explicaré cómo manejar estas situaciones impecablemente.

Deshacer y rehacer cambios en Git: Ojo a esta indicación

Al ejecutar acciones como estas, quiero que tengas algo muy claro: Haz de cuenta que Git es como un diario de viaje, donde cada confirmación o commit es una página que registra lo que hiciste. Entonces, si quieres deshacer algo, puedes tachar una página (revertir) o incluso reescribirla (amend). Cuando necesites rehacer algo, vas a darte cuenta de que es como agregar un apunte extra para arreglar lo que escribiste mal. Ahora sí quiero mostrarte que es muy sencillo deshacer y rehacer cambios en Git.

¿Cómo deshacer y rehacer cambios en Git?

Rehacer un commit con –amend

¿Alguna vez has confirmado algo y luego notaste que olvidaste incluir un archivo o cometiste un error en el mensaje? Pues entonces te enseñaré cómo usar el comando git commit –amend, con el cual puedes modificar el último commit en tu historial.

Ejemplo práctico:

# Crear un commit inicial
$ git commit -m "Primer commit"

# Agregar un archivo olvidado
$ git add archivo_olvidado.txt

# Rehacer el commit
$ git commit --amend -m "Primer commit con el archivo olvidado"

¿Cuál crees que será el resultado? Es muy simple. Resulta que el historial mostrará solo un commit que incluye todo, como si el error nunca hubiera ocurrido.

Deshacer cambios en el área de preparación

Ahora vamos a suponer que usaste git add . y agregaste más archivos de los que querías preparar. Aquí no tienes que entrar en pánico, simplemente vas a usar git reset para deshacer la preparación sin alterar los archivos en tu directorio de trabajo.

Observa el ejemplo:

# Preparar todos los archivos
$ git add .

# Ver el estado
$ git status

# Deshacer la preparación de un archivo específico
$ git reset archivo_incorrecto.txt

Este comando es seguro porque no borra tus cambios, solo los saca del área de preparación.

Deshacer cambios en un archivo modificado

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

En caso de que quieras revertir un archivo a su estado original, como si nunca lo hubieras tocado, lo único que tendrás que hacer es usar el comando git checkout — archivo, tal y como te muestro aquí:

Mira el ejemplo:

# Cambiar un archivo accidentalmente
$ echo "Texto incorrecto" >> archivo.txt

# Deshacer los cambios
$ git checkout -- archivo.txt

¡Ojo a este dato que te dejo aquí! Jamás olvides que este comando elimina permanentemente los cambios no confirmados en ese archivo. Úsalo solo si estás seguro de que no necesitas esos cambios.

Revertir un commit

Si necesitas deshacer un commit ya confirmado, git revert es tu mejor aliado. Este comando crea un nuevo commit que anula los cambios del commit especificado.

Ejemplo práctico:

# Ver el historial
$ git log --oneline

# Revertir el último commit
$ git revert HEAD

Este método es ideal porque no elimina el historial, lo que es esencial en entornos colaborativos.

Ejemplo avanzado: corrección de un bug en el historial

Te planteo este ejercicio: Supongamos que identificas un bug introducido hace tres commits. ¿Cómo lo vas a revertir? Resulta que puedes revertirlo de forma segura con git revert.

# Revertir un commit específico
$ git revert <ID-del-commit>

# Confirmar la reversión
$ git commit -m "Revertir el commit con el bug"

Ten en cuenta que el historial quedará intacto, pero con un commit extra que corrige el problema.

Diferencias entre reset, revert y checkout

La gente siempre se confunde con estos comandos, porque aunque pueden parecer similares, cumplen funciones muy distintas:

Comando¿Qué hace?¿Cuándo usarlo?
git resetCambia la posición del HEAD y puede borrar commits.Cuando quieres modificar tu historial local.
git revertCrea un nuevo commit que deshace otro.En proyectos compartidos donde el historial no debe alterarse.
git checkoutCambia archivos o mueve ramas.Para descartar cambios en archivos individuales.

Consejos al deshacer y rehacer cambios en Git que no puedes omitir

  • Evita usar reset en repositorios compartidos: ¿Por qué te lo digo? Porque esto puede causar conflictos con otros colaboradores.
  • Confirma con frecuencia: Es más fácil deshacer un pequeño cambio que una gran cantidad de modificaciones.
  • Usa mensajes claros: Los mensajes de commit detallados te ayudarán a identificar fácilmente qué cambios deshacer.

Te lo dije, aprender los comandos para deshacer y rehacer cambios en Git no solo te salva de cometer errores, sino que también mejora tu flujo de trabajo y colaboración.

¿Quieres dominar Git y convertirte en un programador completo? En nuestro Bootcamp Aprende a Programar desde Cero de KeepCoding, aprenderás estas y muchas otras habilidades para el desarrollo de software. ¡Empieza hoy y da el primer paso hacia tu futuro en tecnología!

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado