git fast-export
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>...]Options
Choisir la bonne option
Déplacer l’historique
Flux, bundle ou clone
| Commande | Format |
|---|---|
git fast-export | Flux texte lisible |
git bundle | Pack binaire dans un fichier |
git clone | Un dépôt complet |
Exemples
Une seule branche
git fast-export main > main.fiL’historique de main en texte.
Tout
git fast-export --all > repo.fiChaque 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
git fast-export --all > repo.fiExporter
othertool fast-import < repo.fiLa 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
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.