git bundle

Administration

Empaqueter des commits et des branches dans un seul fichier


La commande 'git bundle' empaquette commits, branches et tags dans un seul fichier. Ce fichier se comporte comme un dépôt distant : on peut cloner ou faire un fetch depuis lui. C’est ainsi qu’on déplace un dépôt sans réseau — sur une clé USB, par e-mail, dans un réseau isolé. Un bundle incrémental (A..B) ne contient que les commits récents et exige les plus anciens côté réception.

Synopsis

git bundle create <file> <git-rev-list-args>
git bundle verify <file>
git bundle list-heads <file>
git bundle unbundle <file>
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Options

Cliquez sur une option pour la déplier

Débutant (2)

Vérifier un bundle : ses refs, ce qu’il exige, et si ce dépôt peut l’utiliser.

RecommandéS’assurer que le bundle est complet pour ce dépôt

Exemple

git bundle verify shop.bundle

Lister les branches et tags contenus dans un bundle.

Si nécessaireVoir ce que vous pouvez récupérer d’un bundle

Exemple

git bundle list-heads shop.bundle

Choisir la bonne option

Façons de déplacer un dépôt

Avec et sans réseau

CommandeRéseau nécessaire
git push / git clone <url>Oui
git bundle + copy the fileNo

Exemples

Empaqueter une branche

git bundle create shop.bundle main

Tous les commits de main.


Cloner depuis lui

git clone shop.bundle shop

Un dépôt à partir du fichier.


Incrémental

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

Seulement les commits après v1.0.

Exemples de workflows

1
git bundle create shop.bundle --all

Tout empaqueter

2
git clone shop.bundle shop

Le déballer sur l’autre ordinateur

Dépannage

error: Repository lacks these prerequisite commits

Cause : Le bundle est incrémental

Obtenez un bundle complet, ou récupérez d’abord l’historique manquant

Astuces et pièges

Bonnes pratiques

  • ✓Lancez git bundle verify avant d’envoyer un bundle.

Erreurs fréquentes

  • ✗Créer un bundle incrémental pour quelqu’un à qui manquent les anciens commits — verify indique ce qui est requis.

FAQ

A:

Il peut l’être : git bundle create backup.bundle --all capture chaque branche et chaque tag.