git fast-export

Administration

Exporter l’historique sous forme de flux fast-import


La commande 'git fast-export' écrit l’historique des branches sous forme de flux texte : chaque version de fichier (blob) avec une marque, et chaque commit qui y fait référence. Le flux peut être modifié, filtré, ou donné à git fast-import (ou à un autre système de gestion de versions) pour reconstruire l’historique — c’est la base de nombreux outils de migration et de réécriture.

Synopsis

git fast-export [--all] [<rev-list-options>...]
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Options

Cliquez sur une option pour la déplier

Débutant (1)

Exporter chaque branche et chaque tag.

RecommandéExporter le dépôt complet

Exemple

git fast-export --all

Choisir la bonne option

Déplacer l’historique

Flux, bundle ou clone

CommandeFormat
git fast-exportFlux texte lisible
git bundlePack binaire dans un fichier
git cloneUn dépôt complet

Exemples

Une seule branche

git fast-export main > main.fi

L’historique de main en texte.


Tout

git fast-export --all > repo.fi

Chaque branche et chaque tag.


Copier un dépôt

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

Reconstruire l’historique ailleurs.

Exemples de workflows

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

Exporter

2
othertool fast-import < repo.fi

La plupart des gestionnaires de versions lisent ce format

Dépannage

Les commits signés interrompent l’export

Cause : Les signatures ne peuvent pas être gardées dans le flux

Ajoutez --signed-tags=strip (et --signed-commits=strip sur les Git récents)

Astuces et pièges

Bonnes pratiques

  • ✓Pour réécrire l’historique, préférez git filter-repo à l’édition manuelle d’un flux.

Erreurs fréquentes

  • ✗Modifier le flux à la main pour de grosses réécritures — utilisez git filter-repo, qui repose dessus.

FAQ

A:

Un numéro comme :3 qui désigne un blob ou un commit dans le flux, pour que les entrées suivantes puissent y faire référence.