Por Anónimo (no verificado) , 29 Abril 2026

La capa de transporte

El protocolo de cable de Git históricamente intercala mensajes cliente y servidor sobre una conexión con estado. stateless-connect (introducido para protocolo v2 sobre HTTP) desacopla las solicitudes para que cada una sea ruteable independientemente.

Flujos sin estado

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

Beneficios HTTP/2

El multiplexing HTTP/2 permite que múltiples solicitudes sin estado compartan una conexión.

Ajustar la capa HTTP

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

Paralelismo de fetch

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

HTTP smart vs dumb

"Smart" HTTP soporta negociación; "dumb" HTTP solo sirve .git/objects como archivos estáticos. Siempre prefiere smart.

Errores comunes

Forzar HTTP/1.1 con http.version=HTTP/1.1 en un host que soporta HTTP/2.

Diagnosticar

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