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.
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 esgit 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.
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.
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:
git checkout -b nueva_rama
git reset --hard
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
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.
Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…
Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…
Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…
¿Sabías que puedes copiar y pegar texto, archivos o imágenes entre tu sistema operativo principal…
Hoy publicamos un nuevo video en el canal de YouTube de Analytics Lane basado en…
En el canal de YouTube de Analytics Lane hemos publicado un nuevo video donde explicamos…
This website uses cookies.