Von Gast (nicht überprüft) , 29 April 2026

Die Transportschicht

Git's Wire-Protokoll verschachtelt historisch Client- und Server-Nachrichten uber eine zustandsbehaftete Verbindung. stateless-connect (eingefuhrt fur Protokoll v2 uber HTTP) entkoppelt Anfragen, sodass jede unabhangig routbar ist.

Stateless-Flows

GIT_TRACE_PACKET=1 GIT_TRACE_CURL=1 \
  git -c protocol.version=2 fetch origin 2>&1 | head -50

HTTP/2-Vorteile

HTTP/2-Multiplexing erlaubt mehreren Stateless-Anfragen, eine Verbindung zu teilen.

Tuning der HTTP-Schicht

[http]
version = HTTP/2
postBuffer = 524288000
lowSpeedLimit = 1000
lowSpeedTime = 30
minSessions = 4
maxRequestBuffer = 100M

Fetch-Parallelitat

git config fetch.parallel 0
git config submodule.fetchJobs 0

Smart vs Dumb HTTP

"Smart" HTTP unterstutzt Verhandlung (der moderne Pfad); "Dumb" HTTP serviert nur .git/objects als statische Dateien.

Haufige Fehler

HTTP/1.1 mit http.version=HTTP/1.1 auf einem Host erzwingen, der HTTP/2 unterstutzt.

Diagnose

GIT_CURL_VERBOSE=1 git fetch 2>&1 | head -30
GIT_TRACE_PACKET=1 git fetch 2>&1 | grep -i version