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
Die richtige Option wählen
Wege, ein Repository zu übertragen
Mit und ohne Netzwerk
| Befehl | Braucht Netzwerk |
|---|---|
git push / git clone <url> | Ja |
git bundle + copy the file | No |
Beispiele
Einen Branch packen
git bundle create shop.bundle mainAlle Commits von main.
Davon klonen
git clone shop.bundle shopEin Repository aus der Datei.
Inkrementell
git bundle create update.bundle v1.0..mainNur Commits nach v1.0.
Workflow-Beispiele
1
git bundle create shop.bundle --allAlles packen
2
git clone shop.bundle shopAuf 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.