fast-export e fast-import
git fast-export serializza un repository in un flusso di comandi; git fast-import ricostruisce un repository da uno. Insieme formano il protocollo di interscambio dati di Git.
Esportazione
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
Importazione
mkdir new-repo && cd new-repo && git init
cat ../all.fi | git fast-import
git checkout main
Caso d'uso: archivio dehydrated
git rev-list --objects --all | \
git pack-objects --stdout --revs --delta-base-offset \
> offline.pack
Build deterministici
git fast-export --all --no-data > metadata-only.fi
Anonimizzare
git fast-export --all --anonymize > anon.fi
Chirurgia via filter-repo
git filter-repo usa fast-export internamente.
Errori comuni
Trattare i flussi fast-export come archivi portatili — sono orientati alle righe e legati alla versione di formato Git.
Performance
git fast-export --all | (cd /tmp/new && git init && git fast-import)