Por Anónimo (no verificado) , 29 Abril 2026

fast-export y fast-import

git fast-export serializa un repositorio a un stream de comandos; git fast-import reconstruye un repositorio a partir de uno. Juntos forman el protocolo de intercambio de datos de Git — usado por importadores (cvs2git, hg-fast-export) y por herramientas como git filter-repo internamente.

Exportar

git fast-export --all > all.fi
git fast-export --all --signed-tags=strip --tag-of-filtered-object=drop > clean.fi
git fast-export --reference-excluded-parents main..feature > topic.fi

Importar

mkdir new-repo && cd new-repo && git init
cat ../all.fi | git fast-import
git checkout main

Caso de uso: archivo deshidratado

git rev-list --objects --all | \
  git pack-objects --stdout --revs --delta-base-offset \
  > offline.pack

Builds determinísticos

git fast-export --all --no-data > metadata-only.fi

Anonimizar

git fast-export --all --anonymize > anon.fi

Cirugía vía filter-repo

git filter-repo usa fast-export internamente; es por eso que es rápido.

Errores comunes

Tratar streams fast-export como archivos portables — están atados a un formato Git.

Rendimiento

git fast-export --all | (cd /tmp/new && git init && git fast-import)