git bundle

Verwaltung

Packt Commits und Branches in eine einzige Datei


Der Befehl 'git bundle' packt Commits, Branches und Tags in eine Datei. Die Datei verhält sich wie ein Remote: du kannst von ihr klonen oder fetchen. So überträgt man ein Repository ohne Netzwerk — per USB-Stick, per E-Mail, in ein abgeschottetes Netz. Ein inkrementelles Bundle (A..B) enthält nur neuere Commits und setzt die älteren beim Empfänger voraus.

Syntax

git bundle create <file> <git-rev-list-args>
git bundle verify <file>
git bundle list-heads <file>
git bundle unbundle <file>
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (2)

Prüft ein Bundle: seine Refs, was es voraussetzt und ob dieses Repository es nutzen kann.

EmpfohlenSicherstellen, dass das Bundle für dieses Repository vollständig ist

Beispiel

git bundle verify shop.bundle

Listet die Branches und Tags in einem Bundle.

Bei BedarfSehen, was du aus einem Bundle fetchen kannst

Beispiel

git bundle list-heads shop.bundle

Die richtige Option wählen

Wege, ein Repository zu übertragen

Mit und ohne Netzwerk

BefehlBraucht Netzwerk
git push / git clone <url>Ja
git bundle + copy the fileNo

Beispiele

Einen Branch packen

git bundle create shop.bundle main

Alle Commits von main.


Davon klonen

git clone shop.bundle shop

Ein Repository aus der Datei.


Inkrementell

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

Nur Commits nach v1.0.

Workflow-Beispiele

1
git bundle create shop.bundle --all

Alles packen

2
git clone shop.bundle shop

Auf dem anderen Rechner auspacken

Fehlerbehebung

error: Repository lacks these prerequisite commits

Ursache: Das Bundle ist inkrementell

Besorge ein vollständiges Bundle, oder hole zuerst die fehlende Historie

Tipps & Stolperfallen

Best Practices

  • ✓Führe git bundle verify aus, bevor du ein Bundle verschickst.

Häufige Fehler

  • ✗Ein inkrementelles Bundle für jemanden erstellen, dem die älteren Commits fehlen — verify sagt, was vorausgesetzt wird.

FAQ

A:

Es kann eins sein: git bundle create backup.bundle --all erfasst jeden Branch und jeden Tag.