git fast-export
Exporta o histórico como fluxo de texto fast-import
O comando 'git fast-export' grava o histórico dos branches como um fluxo de texto: cada versão de arquivo (blob) com uma marca e cada commit que se refere a elas. O fluxo pode ser editado, filtrado ou passado ao git fast-import (ou a outro sistema de controle de versão) para reconstruir o histórico — a base de muitas ferramentas de migração e reescrita.
Sinopse
git fast-export [--all] [<rev-list-options>...]Opções
Escolhendo a opção certa
Mover histórico
Fluxo, bundle ou clone
| Comando | Formato |
|---|---|
git fast-export | Fluxo de texto legível |
git bundle | Pack binário num arquivo |
git clone | Um repositório completo |
Exemplos
Uma branch
git fast-export main > main.fiO histórico de main como texto.
Tudo
git fast-export --all > repo.fiTodos os branches e tags.
Copiar um repositório
git fast-export --all | (cd ../copy && git fast-import)Reconstruir o histórico em outro lugar.
Exemplos de fluxos de trabalho
git fast-export --all > repo.fiExportar
othertool fast-import < repo.fiA maioria dos sistemas de versão lê este formato
Solução de problemas
Commits assinados interrompem a exportação
Causa: As assinaturas não podem ser mantidas no fluxo
Adicione --signed-tags=strip (e --signed-commits=strip em Git mais novos)
Dicas e armadilhas
Boas práticas
- ✓Para reescrever histórico, prefira git filter-repo a editar um fluxo à mão.
Erros comuns
- ✗Editar o fluxo à mão em grandes reescritas — use git filter-repo, que é baseado nele.
Perguntas frequentes
Um número como :3 que nomeia um blob ou commit no fluxo, para que entradas posteriores possam se referir a ele.