Herramientas

Guía para recuperar commits perdidos en Git

Perder commits en Git es una experiencia desagradable. Después de invertir tiempo y esfuerzo en el código, ver que este no está en el repositorio es frustrante y estresante. Algo que sé por experiencia propia. Sin embargo, en Git existen herramientas para restaurar los commits perdidos y recuperar el trabajo. Generalmente, aunque no se vean los commits, lo normal es que estos sigan estando en el repositorio. En esta entrada se verán los pasos para recuperar commits perdidos en Git. Unos pasos que me han servido para solucionar este problema una vez.

Nota importante: Si bien los pasos que se explican en esta entrada permiten recuperar los commits perdidos, algo que he probado en primera persona, es fundamental realizar una copia de seguridad del repositorio antes de aplicar cualquier acción. Así, en caso de cualquier problema, siempre se dispondrá de una copia del trabajo en caso de que algo salga mal durante el proceso de recuperación de los commits perdidos en Git. Una medida de prevención sencilla para evitar cualquier pérdida de datos.

Revisar el registro de reflogs

Git mantiene un registro detallado de todas las operaciones realizadas en el repositorio, incluidos los cambios en las ramas y los commits. El comando para acceder a ese registro es
git reflog. En cada entrada de este registro representa una acción realizada sobre el repositorio, pudiendo ver también el hash asociado a esta. Ahora, solo se deben identificar el commit perdido en el registro y copiar el hash.

Revisar el registro de commits

Si no aparece el commit perdido en el reflog, es posible que este se pueda encontrar en el registro de commits. Para ello se debe utilizar el comando git log --all. Un comando que devuelve todos los commits que hay en el repositorio, incluso aquellos que no están referenciados por ninguna rama o etiqueta. Al igual que antes, se debe buscar el commit en el listado y copiar su hash.

Crear una nueva rama o restablecer la rama existente

Una vez copiado el hash correspondiente al commit perdido en el registro ya se puede crear una rama para este o restablecer la rama para que apunte al commit. Para lo que se pueden usar los siguientes comandos:

  • Para crear una nueva rama que apunte al commit perdido:
git checkout -b nueva_rama 
  • Para restablecer la rama existente para que apunte al commit perdido:
git reset --hard 

Utilizar herramientas de recuperación de Git

Si las opciones anteriores no funcionan, existen otras herramientas de recuperación en Git con las que se puede intentar recuperar los commits perdidos. Una de las opciones es git fsck. Este comando permite buscar objetos corruptos en la base de datos de Git y, a veces, recuperar commits perdidos. Para lo que se debe ejecutar el siguiente comando:

git fsck --lost-found

Conclusiones

Recuperar commits perdidos en Git puede parecer algo imposible, pero con las herramientas adecuadas es posible restaurar el trabajo a su estado anterior. Evitando de esta manera la pérdida de trabajo. Aun así, es importante mantener copias de seguridad de los repositorios y guardar este tutorial para estar preparado en caso de emergencia. Evitando de esta manera una experiencia frustrante con una herramienta clave en la que se guarda el trabajo.

Imagen de NoName_13 en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Git

Recent Posts

Cómo calcular el tamaño de la muestra para encuestas

Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…

2 días ago

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…

7 días ago

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…

1 semana ago

Nuevo video: cómo activar copiar y pegar en VirtualBox fácilmente

¿Sabías que puedes copiar y pegar texto, archivos o imágenes entre tu sistema operativo principal…

2 semanas ago

Nuevo video: Leer y guardar archivos Excel y CSV en Python

Hoy publicamos un nuevo video en el canal de YouTube de Analytics Lane basado en…

2 semanas ago

Nuevo video en YouTube: Trabajando con archivos JSON en Python

En el canal de YouTube de Analytics Lane hemos publicado un nuevo video donde explicamos…

3 semanas ago

This website uses cookies.