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

NAME

git-upload-pack - Sende gepackte Objekte zurück an git-fetch-pack

SYNOPSIS

git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]
		  [--advertise-refs] <directory>

BESCHREIBUNG

Wird von git fetch-pack aufgerufen, erfährt, welche Objekte die andere Seite vermisst, und sendet sie nach dem Verpacken.

Dieser Befehl wird normalerweise nicht direkt vom Endbenutzer aufgerufen. Die Benutzeroberfläche für das Protokoll befindet sich auf der Seite von git fetch-pack, und das Programm-Paar dient dazu, Updates von einem Remote-Repository abzurufen. Für Push-Operationen siehe git send-pack.

OPTIONEN

--strict
--no-strict

Versuche nicht, <directory>/.git/ zu verwenden, wenn <directory> kein Git-Repository ist.

--timeout=<n>

Unterbreche die Übertragung nach <n> Sekunden Inaktivität.

--stateless-rpc

Führe nur einen einzelnen Lese-Schreib-Zyklus mit stdin und stdout durch. Dies passt zum HTTP POST-Anfragemodell, bei dem ein Programm die Anfrage lesen, eine Antwort schreiben und beenden muss.

--http-backend-info-refs

Wird von git-http-backend[1] verwendet, um Anfragen für $GIT_URL/info/refs?service=git-upload-pack zu bedienen. Siehe "Smart Clients" in gitprotocol-http[5] und "HTTP Transport" in der Dokumentation zu gitprotocol-v2[5]. Wird auch von git-receive-pack[1] verstanden.

<directory>

Das Repository, aus dem synchronisiert werden soll.

UMGEBUNG

GIT_PROTOCOL

Interne Variable, die für das Aushandeln des Wire-Protokolls verwendet wird. Serveradministratoren müssen möglicherweise einige Transports konfigurieren, um die Weitergabe dieser Variablen zu ermöglichen. Siehe die Diskussion in git[1].

GIT_NO_LAZY_FETCH

Beim Klonen oder Abrufen aus einem partiellen Repository (d. h. einem, das selbst mit --filter geklont wurde) muss der serverseitige upload-pack möglicherweise zusätzliche Objekte von seinem Upstream abrufen, um die Anfrage abzuschließen. Standardmäßig lehnt upload-pack einen solchen Lazy Fetch ab, da git fetch beliebige Befehle ausführen kann, die in der Konfiguration und den Hooks des Quell-Repositorys angegeben sind (und upload-pack versucht, sicher zu sein, auch in nicht vertrauenswürdigen .git-Verzeichnissen ausgeführt zu werden).

Dies wird implementiert, indem upload-pack intern die Variable GIT_NO_LAZY_FETCH auf 1 setzt. Wenn Sie dies überschreiben möchten (weil Sie aus einem partiellen Klon abrufen und sicher sind, dass Sie ihm vertrauen), können Sie GIT_NO_LAZY_FETCH explizit auf 0 setzen.

SICHERHEIT

Die meisten Git-Befehle sollten nicht in einem nicht vertrauenswürdigen .git-Verzeichnis ausgeführt werden (siehe den Abschnitt SECURITY in git[1]). upload-pack versucht, gefährliche Konfigurationsoptionen oder Hooks aus dem Repository, das es bedient, zu vermeiden, was es sicher macht, ein nicht vertrauenswürdiges Verzeichnis zu klonen und Befehle auf dem resultierenden Klon auszuführen.

Für zusätzliche Sicherheit können Sie upload-pack möglicherweise als alternativer Benutzer ausführen. Die Details hängen vom System ab, aber auf vielen Systemen können Sie

git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...

SIEHE AUCH

GIT

Teil der git[1] Suite