git fast-export
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>...]Opciones
Elegir la opción adecuada
Mover historial
Flujo, bundle o clon
| Comando | Formato |
|---|---|
git fast-export | Flujo de texto legible |
git bundle | Pack binario en un archivo |
git clone | Un repositorio completo |
Ejemplos
Una rama
git fast-export main > main.fiEl historial de main como texto.
Todo
git fast-export --all > repo.fiTodas 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
git fast-export --all > repo.fiExportar
othertool fast-import < repo.fiLa 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
Un número como :3 que nombra un blob o un commit en el flujo, para que las entradas posteriores puedan referirse a él.