git fast-export

Administração

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>...]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Opções

Clique em uma opção para expandir

Iniciante (1)

Exporta todos os branches e tags.

RecomendadoExportar o repositório completo

Exemplo

git fast-export --all

Escolhendo a opção certa

Mover histórico

Fluxo, bundle ou clone

ComandoFormato
git fast-exportFluxo de texto legível
git bundlePack binário num arquivo
git cloneUm repositório completo

Exemplos

Uma branch

git fast-export main > main.fi

O histórico de main como texto.


Tudo

git fast-export --all > repo.fi

Todos 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

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

Exportar

2
othertool fast-import < repo.fi

A 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

A:

Um número como :3 que nomeia um blob ou commit no fluxo, para que entradas posteriores possam se referir a ele.