Par Anonyme (non vérifié) , 29 avril 2026

fast-export et fast-import

git fast-export sérialise un dépôt en stream de commandes ; git fast-import reconstruit un dépôt depuis un. Ensemble ils forment le protocole d'échange de données de Git — utilisé par les importers (cvs2git, hg-fast-export, p4-fast-export) et par des outils comme git filter-repo en interne.

Exporter

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

Importer

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

Cas d'usage : archive déshydratée

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

Builds déterministes

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

Anonymisation

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

Chirurgie via filter-repo

git filter-repo utilise fast-export en interne ; c'est pour cela qu'il est rapide.

Erreurs courantes

Traiter les streams fast-export comme archives portables — ils sont liés à un format Git.

Performance

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