git fast-export

Administración

Exporta el historial como flujo de texto fast-import


El comando 'git fast-export' escribe el historial de las ramas como un flujo de texto: cada versión de archivo (blob) con una marca y cada commit que se refiere a ellas. El flujo puede editarse, filtrarse o pasarse a git fast-import (u otro sistema de control de versiones) para reconstruir el historial — la base de muchas herramientas de migración y reescritura.

Sinopsis

git fast-export [--all] [<rev-list-options>...]
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Opciones

Haz clic en una opción para desplegarla

Principiante (1)

Exporta todas las ramas y tags.

RecomendadoExportar el repositorio completo

Ejemplo

git fast-export --all

Elegir la opción adecuada

Mover historial

Flujo, bundle o clon

ComandoFormato
git fast-exportFlujo de texto legible
git bundlePack binario en un archivo
git cloneUn repositorio completo

Ejemplos

Una rama

git fast-export main > main.fi

El historial de main como texto.


Todo

git fast-export --all > repo.fi

Todas las ramas y tags.


Copiar un repositorio

git fast-export --all | (cd ../copy && git fast-import)

Reconstruir el historial en otro lugar.

Ejemplos de flujos de trabajo

1
git fast-export --all > repo.fi

Exportar

2
othertool fast-import < repo.fi

La mayoría de sistemas de versiones leen este formato

Solución de problemas

Los commits firmados detienen la exportación

Causa: Las firmas no pueden conservarse en el flujo

Añade --signed-tags=strip (y --signed-commits=strip en Git recientes)

Consejos y trampas

Buenas prácticas

  • ✓Para reescribir historial, prefiere git filter-repo a editar un flujo a mano.

Errores comunes

  • ✗Editar el flujo a mano para grandes reescrituras — usa git filter-repo, que se basa en él.

Preguntas frecuentes

A:

Un número como :3 que nombra un blob o un commit en el flujo, para que las entradas posteriores puedan referirse a él.