git bundle

Administração

Empacota commits e branches num único arquivo


O comando 'git bundle' empacota commits, branches e tags num único arquivo. O arquivo se comporta como um remoto: dá para clonar ou fazer fetch a partir dele. É assim que se move um repositório sem rede — num pen drive, por e-mail, numa rede isolada. Um bundle incremental (A..B) só leva os commits mais novos e exige os antigos do lado de quem recebe.

Sinopse

git bundle create <file> <git-rev-list-args>
git bundle verify <file>
git bundle list-heads <file>
git bundle unbundle <file>
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Opções

Clique em uma opção para expandir

Iniciante (2)

Verifica um bundle: seus refs, o que ele exige e se este repositório pode usá-lo.

RecomendadoGarantir que o bundle está completo para este repositório

Exemplo

git bundle verify shop.bundle

Lista os branches e tags dentro de um bundle.

Quando necessárioVer o que dá para trazer de um bundle

Exemplo

git bundle list-heads shop.bundle

Escolhendo a opção certa

Formas de mover um repositório

Com e sem rede

ComandoPrecisa de rede
git push / git clone <url>Sim
git bundle + copy the fileNo

Exemplos

Empacotar um branch

git bundle create shop.bundle main

Todos os commits de main.


Clonar a partir dele

git clone shop.bundle shop

Um repositório a partir do arquivo.


Incremental

git bundle create update.bundle v1.0..main

Só os commits depois da v1.0.

Exemplos de fluxos de trabalho

1
git bundle create shop.bundle --all

Empacotar tudo

2
git clone shop.bundle shop

Desempacotar no outro computador

Solução de problemas

error: Repository lacks these prerequisite commits

Causa: O bundle é incremental

Obtenha um bundle completo, ou busque antes o histórico que falta

Dicas e armadilhas

Boas práticas

  • ✓Execute git bundle verify antes de enviar um bundle.

Erros comuns

  • ✗Criar um bundle incremental para alguém que não tem os commits antigos — o verify diz o que é necessário.

Perguntas frequentes

A:

Pode ser: git bundle create backup.bundle --all captura todos os branches e tags.