Saltar al contenido
GitTree
guías de git6 minutos de lectura

Cómo recuperar un alijo de Git caído, una rama eliminada o confirmaciones perdidas

Un alijo eliminado o una rama eliminada rara vez desaparecen para siempre: Git mantiene las confirmaciones hasta que la recolección de basura las elimina. Encuéntrelos con reflog o git fsck, verifique lo que contienen y vuelva a colocarlos en una rama antes de que sea demasiado tarde.

Escrito por Kodmora

La casa de software detrás de GitTree

Actualizado
  • alijo
  • Deshacer y recuperar
En esta página

Cuando sueltas un alijo o eliminas una rama, Git elimina el nombre, no las confirmaciones. Las confirmaciones permanecen en el repositorio como objetos inalcanzables hasta que la recolección de basura los elimina, generalmente después de dos semanas o más. Encuentre la última confirmación de una rama eliminada en el registro nuevo con git reflog, busque un alijo eliminado con git fsck --unreachable, compruébelo con git show y luego guárdelo con git branch rescue <sha>.

Esta guía cubre cada caso con los comandos exactos, explica durante cuánto tiempo Git mantiene el trabajo perdido y qué no se puede recuperar, y muestra la misma recuperación en Lost & Found de GitTree, que busca en todas las fuentes a la vez y nunca verifica ni restablece nada. Lost & Found es parte del plan gratuito de GitTree. Para deshacer un reinicio, un rebase o una modificación, lea cómo deshacer git reset, rebase y commit en su lugar.

Dónde vive realmente el trabajo "perdido" de Git

Se puede alcanzar una confirmación cuando una rama, una etiqueta, el alijo o HEAD conducen a ella. Eliminar una rama o soltar un alijo hace que sus confirmaciones sean inalcanzables, pero permanecen en .git/objects. Dos registros te ayudan a encontrarlos: el reflog, donde apuntaba cada rama y HEAD antes, y la base de datos de objetos en sí, que git fsck puede buscar.

¿Qué herramienta encuentra qué tipo de trabajo perdido?
lo que perdistedonde buscarComando
Una rama eliminada que habías retiradoReflog de HEADgit reflog
Una rama eliminada que nunca revisasteConfirmaciones inalcanzablesgit fsck --unreachable
Un alijo caído o eliminadoConfirmaciones inalcanzables en forma de fusióngit fsck --unreachable | grep commit
Confirmaciones perdidas después de un reinicio o rebaseEl reflog de la ramagit reflog show <branch>
Cambios nunca confirmados o escondidosEn ninguna parte en GitNo recuperable de Git

Recuperar una rama eliminada

Git imprime la última confirmación de la rama cuando la eliminas (Deleted branch feature/login (was 3f2a9c1)). Si ese mensaje desapareció, busque en el registro de HEAD la última vez que estuvo en la rama, luego vuelva a crear la rama en esa confirmación.

# find the last commit of the branch
git reflog | grep "feature/login"

# check what it holds
git show 3f2a9c1 --stat

# put the branch back
git branch feature/login 3f2a9c1

Recuperar un alijo caído

Un alijo no tiene reflog propio una vez que se elimina, así que busque las confirmaciones inalcanzables. Un alijo es una confirmación en forma de combinación cuyo mensaje comienza con WIP on o On <branch>:, lo que facilita su filtrado. Este es el método que describe la propia documentación oculta de Git.

# list unreachable stash-like commits, newest first
git fsck --unreachable | grep commit | cut -d" " -f3 \
  | xargs git log --merges --no-walk --grep=WIP --format="%h %cr %s"

# inspect a candidate
git stash show -p 7c1e0b4

# restore it into your working tree, or keep it on a branch
git stash apply 7c1e0b4
git branch rescue-stash 7c1e0b4

Encuentre cada confirmación pendiente con git fsck --lost-found

git fsck --lost-found enumera las confirmaciones pendientes y escribe una copia de cada una en .git/lost-found/commit/, denominada por su ID. Úsalo cuando no sepas lo que estás buscando: enuméralos con sus fechas y mensajes, luego pasa del que deseas.

git fsck --lost-found
ls .git/lost-found/commit | xargs git log --no-walk --format="%h %cr %s"
git branch rescue 9d44b0e

Recuperar trabajo perdido con Lost & Found de GitTree

  1. Abrir objetos perdidos y encontrados

    Elija Herramientas → Objetos perdidos o presione Alt+Shift+D. Se abre como una ventana completa en su página Inicio, que explica las tres fuentes que busca: el reflog, las referencias de recuperación de GitTree y los objetos inalcanzables.

  2. Encuentra trabajo local

    Marque Incluir un análisis más profundo de objetos inalcanzables para buscar también escondites caídos, luego presione Buscar trabajo local. Trabajo encontrado enumera cada resultado con su fuente y cuándo fue visto; Filtrar por confirmación, mensaje o fuente reduce la lista.

  3. Inspeccione antes de guardar

    Seleccione un resultado: Por qué aparece este objeto muestra su evidencia, su mensaje y los archivos aparecen a su lado, y cada archivo abre su contenido. No se comprueba ni se aplica nada.

  4. Mantenlo en una rama

    En Mantener esta confirmación, escriba un Nombre de nueva rama y presione Crear rama de recuperación. Recuperado enumera la rama; Mostrar en gráfico salta a él. Sus archivos de checkout y de trabajo no cambian.

Objetos perdidos y encontrados en GitTree se abre en su página de inicio: el nuevo registro, las referencias de recuperación y un análisis más profundo opcional, antes de Buscar trabajo local.
Objetos perdidos y encontrados en GitTree se abre en su página de inicio: el nuevo registro, las referencias de recuperación y un análisis más profundo opcional, antes de Buscar trabajo local.

¿Cuánto tiempo mantiene Git las confirmaciones perdidas?

Configuración de caducidad predeterminada de Git
ConfiguraciónPredeterminadolo que controla
gc.reflogExpire90 diasLas entradas de Reflog para confirmaciones aún son accesibles
gc.reflogExpireUnreachable30 diasYa no se puede acceder a las entradas de reflog para confirmaciones
gc.pruneExpire2 semanasObjetos inalcanzables sin entrada de registro, como un alijo caído

La recolección de basura se ejecuta por sí sola después de algunos comandos, por lo que son ventanas, no promesas. Cuanto antes miras, más encuentras. Una copia en otro lugar, como el clon de un compañero de equipo o una rama enviada, es la otra red de seguridad: el trabajo perdido sólo en tu computadora existe sólo allí.

Lo que no se puede recuperar

  • Cambios que nunca se confirmaron o guardaron, como ediciones descartadas con git checkout -- <file> o git restore.
  • Archivos sin seguimiento que no estaban en un alijo creado con -u.
  • Confirma que la recolección de basura ya se ha podado.
  • Trabajo que sólo existió en la computadora de otra persona.

Próximos pasos: la guía de objetos perdidos documenta cada página y botón, buscar consejos sobre ramas anteriores cubre la vista de registro y la guía de git stash explica cómo aplicar, abrir y archivos sin seguimiento para que necesites recuperarlos con menos frecuencia.

Preguntas frecuentes

¿Puedo recuperar un alijo de git caído?

Generalmente sí. Un alijo eliminado se convierte en una confirmación inalcanzable hasta que la recolección de basura lo elimina. Encuéntrelo con git fsck --unreachable, inspecciónelo con git stash show -p <sha>, luego git stash apply <sha> o git branch <name> <sha>.

¿Cómo recupero una rama eliminada en Git?

Busque la última confirmación de la rama en git reflog (o el mensaje "era <sha>" que Git imprimió cuando la eliminó), luego ejecute git branch <name> <sha> para restablecer la rama.

¿Qué es un commit pendiente?

Una confirmación a la que no apunta ninguna entrada de rama, etiqueta, almacenamiento o reflog. git fsck --lost-found los enumera y los copia en .git/lost-found/commit/ para que pueda inspeccionarlos.

¿Git gc elimina las confirmaciones perdidas?

Sí, una vez que sean más antiguos que la configuración de caducidad: de forma predeterminada, los objetos inalcanzables sin una entrada de registro se eliminan después de dos semanas. Evite git gc y git prune hasta que haya recuperado su trabajo.

¿Puedo recuperar cambios que nunca cometí?

No de Git. Sólo el trabajo confirmado o escondido está en la base de datos de objetos. El historial local de su editor o una copia de seguridad es el lugar donde debe buscar.

¿Los objetos perdidos y encontrados de GitTree son gratuitos?

Sí. Lost & Found es parte del plan gratuito de GitTree. Solo lee su repositorio local y el único cambio que realiza es la rama de recuperación que solicita.

Fuentes

Las afirmaciones sobre otros productos se compararon con sus páginas oficiales el 5 de noviembre de 2026. Los precios y las características cambian; Las páginas de los proveedores son la fuente de la verdad.