Da Anonimo (non verificato) , 29 Aprile 2026

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

SottocomandoDescrizione
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.
--allInclude tutti i ref.
--progressMostra 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