Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
- 2.43.1 → 2.52.0 keine Änderungen
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 keine Änderungen
-
2.38.0
2022-10-02
BESCHREIBUNG
Das Git-Bundle-Format ist ein Format, das sowohl Refs als auch Git-Objekte repräsentiert. Ein Bundle besteht aus einem Header im Format, das git-show-ref[1] ähnelt, gefolgt von einem Pack im *.pack-Format.
Das Format wird vom Befehl git-bundle[1] erstellt und gelesen und unterstützt von z.B. git-fetch[1] und git-clone[1].
FORMAT
Wir verwenden die ABNF-Notation, um das Git-Bundle-Format zu definieren. Details siehe gitprotocol-common[5].
Ein v2 Bundle sieht so aus
bundle = signature *prerequisite *reference LF pack signature = "# v2 git bundle" LF prerequisite = "-" obj-id SP comment LF comment = *CHAR reference = obj-id SP refname LF pack = ... ; packfile
Ein v3 Bundle sieht so aus
bundle = signature *capability *prerequisite *reference LF pack signature = "# v3 git bundle" LF capability = "@" key ["=" value] LF prerequisite = "-" obj-id SP comment LF comment = *CHAR reference = obj-id SP refname LF key = 1*(ALPHA / DIGIT / "-") value = *(%01-09 / %0b-FF) pack = ... ; packfile
SEMANTIK
Ein Git-Bundle besteht aus mehreren Teilen.
-
"Capabilities" (Funktionen), die nur im v3-Format vorhanden sind, geben Funktionalitäten an, die das Bundle zum korrekten Lesen benötigt.
-
"Prerequisites" (Voraussetzungen) listen die Objekte auf, die NICHT im Bundle enthalten sind und die der Leser des Bundles bereits besitzen MUSS, um die Daten im Bundle verwenden zu können. Die im Bundle gespeicherten Objekte können auf Voraussetzungsobjekte und alles von ihnen Erreichbare verweisen (z. B. kann ein Baumobjekt im Bundle auf einen Blob verweisen, der von einer Voraussetzung erreichbar ist) und/oder als Delta gegen Voraussetzungsobjekte ausgedrückt werden.
-
"References" (Referenzen) zeichnen die Spitzen des Historien-Graphen auf, d. h., was der Leser des Bundles daraus "git fetch"en kann.
-
"Pack" ist der Pack-Datenstrom, den "git fetch" senden würde, wenn Sie von einem Repository fetchen, das die unter "References" aufgezeichneten Referenzen in ein Repository mit Referenzen, die auf die unter "Prerequisites" aufgeführten Objekte zeigen, fetchen.
Im Bundle-Format kann nach einer Voraussetzungs-Objekt-ID ein Kommentar folgen. Dies ist ein Kommentar und hat keine spezifische Bedeutung. Der Verfasser des Bundles KANN hier eine beliebige Zeichenkette einfügen. Der Leser des Bundles MUSS den Kommentar ignorieren.
FUNKTIONEN
Da keine Möglichkeit zur Aushandlung besteht, bricht git bundle bei unbekannten Funktionen ab.
-
object-formatgibt den verwendeten Hash-Algorithmus an und kann dieselben Werte wie der Konfigurationswertextensions.objectFormatannehmen. -
filtergibt einen Objektfilter an, wie in der Option--filterin git-rev-list[1]. Die resultierende Pack-Datei muss nach dem Entpacken als.promisorPack-Datei gekennzeichnet werden.
GIT
Teil der git[1] Suite