Sinossi
git bundle create <file> <git-rev-list-args>
git bundle verify <file>
git bundle list-heads <file>
git clone <file> <dir>
Descrizione
Il comando git bundle impacchetta la storia Git in un singolo file che può essere trasferito senza rete — tramite chiavetta USB, email o qualsiasi trasporto file. Il destinatario può clonare o fare fetch dal bundle come se fosse un remote. Questo è prezioso per sistemi air-gapped, connessioni lente o come formato di backup.
I bundle supportano aggiornamenti incrementali: includi un ref base così il bundle contiene solo commit da quel ref, poi fai applicare al destinatario sopra un repo esistente con git fetch.
Nell'uso quotidiano, git bundle si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Sottocomando | Descrizione |
|---|---|
create <file> <refs> | Crea un file bundle. |
verify <file> | Controlla che un bundle sia valido e applicabile. |
list-heads <file> | Elenca i ref che il bundle contiene. |
unbundle <file> | Plumbing: emette oggetti al repository. |
--all | Include tutti i ref. |
--progress | Mostra il progresso alla creazione. |
Esempi
git bundle create repo.bundle --all
# Backup completo di ogni ref
git bundle create incremental.bundle main ^v2.0
# Solo commit su main da v2.0
git bundle verify repo.bundle
# Verifica applicabilità prima di fetchare
# Sul lato ricevente:
git clone repo.bundle myproj
# o, in un repo esistente:
git fetch ../incremental.bundle main:main
Errori comuni
Creare un bundle senza specificare una base significa che il destinatario ottiene la storia completa ogni volta, anche per piccoli aggiornamenti. Usa range come --since o ^<ref> per bundle incrementali. git bundle verify contro un repo vuoto controlla solo la validità strutturale, non se i prerequisiti del bundle sono presenti.
Comandi correlati
git archive, git fetch, git clone, git pack-objects