English ▾ Themen ▾ Neueste Version ▾ git-send-pack zuletzt aktualisiert in 2.52.0

NAME

git-send-pack - Objekte über Git-Protokoll in ein anderes Repository pushen

SYNOPSIS

git send-pack [--mirror] [--dry-run] [--force]
		[--receive-pack=<git-receive-pack>]
		[--verbose] [--thin] [--atomic]
		[--[no-]signed | --signed=(true|false|if-asked)]
		[<host>:]<directory> (--all | <ref>…​)

BESCHREIBUNG

Normalerweise möchten Sie stattdessen git push verwenden, was ein übergeordneter Wrapper für diesen Befehl ist. Siehe git-push[1].

Ruft git-receive-pack auf einem möglicherweise entfernten Repository auf und aktualisiert es aus dem aktuellen Repository, indem benannte Referenzen gesendet werden.

OPTIONEN

--receive-pack=<git-receive-pack>

Pfad zum git-receive-pack Programm auf der Remote-Seite. Manchmal nützlich, wenn Sie über SSH in ein entferntes Repository pushen und das Programm nicht in einem Verzeichnis auf dem Standard-$PATH haben.

--exec=<git-receive-pack>

Dasselbe wie --receive-pack=<git-receive-pack>.

--all

Anstatt explizit anzugeben, welche Referenzen aktualisiert werden sollen, werden alle lokal vorhandenen Heads aktualisiert.

--stdin

Nimmt die Liste der Referenzen von stdin, eine pro Zeile. Wenn zusätzlich zu dieser Option Referenzen auf der Befehlszeile angegeben sind, werden die Referenzen von stdin nach denen auf der Befehlszeile verarbeitet.

Wenn --stateless-rpc zusammen mit dieser Option angegeben wird, muss die Liste der Referenzen im Paketformat (pkt-line) vorliegen. Jede Referenz muss in einem separaten Paket stehen, und die Liste muss mit einem Flush-Paket enden.

--dry-run

Tut alles außer dem tatsächlichen Senden der Updates.

--force

Normalerweise weigert sich der Befehl, eine entfernte Referenz zu aktualisieren, die kein Vorfahre der lokalen Referenz ist, die zum Überschreiben verwendet wird. Dieses Flag deaktiviert die Prüfung. Das bedeutet, dass das entfernte Repository Commits verlieren kann; verwenden Sie es mit Vorsicht.

--verbose

Führen Sie ausführlich aus.

--thin

Sendet ein "dünnes" Paket, das Objekte in deltatisiertem Format basierend auf Objekten, die nicht im Paket enthalten sind, aufzeichnet, um den Netzwerkverkehr zu reduzieren.

--atomic

Verwendet eine atomare Transaktion zur Aktualisierung der Referenzen. Wenn die Aktualisierung einer der Referenzen fehlschlägt, schlägt der gesamte Push fehl, ohne dass Referenzen geändert werden.

--signed
--no-signed
--signed=(true|false|if-asked)

GPG-signiert die Push-Anfrage zur Aktualisierung von Referenzen auf der Empfängerseite, um deren Überprüfung durch Hooks und/oder Protokollierung zu ermöglichen. Wenn false oder --no-signed angegeben ist, wird keine Signierung versucht. Wenn true oder --signed angegeben ist, schlägt der Push fehl, wenn der Server keine signierten Pushes unterstützt. Wenn auf if-asked gesetzt, wird nur signiert, wenn der Server signierte Pushes unterstützt. Der Push schlägt auch fehl, wenn der eigentliche Aufruf von gpg --sign fehlschlägt. Siehe git-receive-pack[1] für Details auf der Empfängerseite.

--push-option=<string>

Übergibt die angegebene Zeichenkette als Push-Option zur Verarbeitung durch Hooks auf der Serverseite. Wenn der Server Push-Optionen nicht unterstützt, wird ein Fehler ausgegeben. Siehe git-push[1] und githooks[5] für Details.

<host>

Ein entfernter Host, der das Repository beherbergt. Wenn dieser Teil angegeben ist, wird git-receive-pack über ssh aufgerufen.

<directory>

Das zu aktualisierende Repository.

<ref>…​

Die entfernten Referenzen, die aktualisiert werden sollen.

ANGABE DER REFERENZEN

Es gibt drei Möglichkeiten, anzugeben, welche Referenzen auf der Remote-Seite aktualisiert werden sollen.

Mit dem Flag --all werden alle lokal vorhandenen Referenzen auf die Remote-Seite übertragen. Sie können keine <ref> angeben, wenn Sie dieses Flag verwenden.

Ohne --all und ohne jegliche <ref> werden die Heads aktualisiert, die sowohl auf der lokalen als auch auf der Remote-Seite vorhanden sind.

Wenn eine oder mehrere <ref> explizit angegeben sind (entweder auf der Befehlszeile oder über --stdin), kann es sich entweder um ein einzelnes Muster oder um ein Paar solcher Muster handeln, die durch einen Doppelpunkt ":" getrennt sind (dies bedeutet, dass ein Referenzname keinen Doppelpunkt enthalten kann). Ein einzelnes Muster <name> ist nur eine Kurzform für <name>:<name>.

Jedes Musterpaar besteht aus der Quellseite (vor dem Doppelpunkt) und der Zielseite (nach dem Doppelpunkt). Die zu pushende Referenz wird ermittelt, indem eine Übereinstimmung gefunden wird, die der Quellseite entspricht, und wohin sie gepusht wird, wird durch Verwendung der Zielseite bestimmt. Die Regeln für die Übereinstimmung einer Referenz sind dieselben Regeln, die von git rev-parse zur Auflösung eines symbolischen Referenznamens verwendet werden. Siehe git-rev-parse[1].

  • Es ist ein Fehler, wenn <src> nicht genau einer der lokalen Referenzen entspricht.

  • Es ist ein Fehler, wenn <dst> mehr als einer entfernten Referenz entspricht.

  • Wenn <dst> keiner entfernten Referenz entspricht, entweder

    • muss es mit "refs/" beginnen; <dst> wird in diesem Fall buchstäblich als Ziel verwendet.

    • <src> == <dst> und die Referenz, die <src> entsprach, darf nicht in der Menge der entfernten Referenzen vorhanden sein; die Referenz, die lokal mit <src> übereinstimmte, wird als Name des Ziels verwendet.

Ohne --force wird die <src>-Referenz nur dann am Remote-Ende gespeichert, wenn <dst> nicht existiert oder <dst> eine echte Teilmenge (d.h. ein Vorfahre) von <src> ist. Diese Prüfung, bekannt als "Fast-Forward-Prüfung", wird durchgeführt, um versehentliches Überschreiben der Remote-Referenz und den Verlust von Commits anderer Personen zu vermeiden.

Mit --force wird die Fast-Forward-Prüfung für alle Referenzen deaktiviert.

Optional kann ein <ref> Parameter einem Pluszeichen + vorangestellt werden, um die Fast-Forward-Prüfung nur für diese Referenz zu deaktivieren.

GIT

Teil der git[1] Suite