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
Escolhendo a opção certa
Formas de mover um repositório
Com e sem rede
| Comando | Precisa de rede |
|---|---|
git push / git clone <url> | Sim |
git bundle + copy the file | No |
Exemplos
Empacotar um branch
git bundle create shop.bundle mainTodos os commits de main.
Clonar a partir dele
git clone shop.bundle shopUm repositório a partir do arquivo.
Incremental
git bundle create update.bundle v1.0..mainSó os commits depois da v1.0.
Exemplos de fluxos de trabalho
1
git bundle create shop.bundle --allEmpacotar tudo
2
git clone shop.bundle shopDesempacotar 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.