Solution rapide:
Avec ce genre d'erreur, je commence généralement par augmenter la postBuffer
taille en:
git config --global http.postBuffer 524288000
(certains commentaires ci-dessous indiquent qu'il faut doubler la valeur):
git config --global http.postBuffer 1048576000
Plus d'information:
Depuis la git config
page de manuel , il http.postBuffer
s'agit de:
Taille maximale en octets de la mémoire tampon utilisée par les transports HTTP intelligents lors du POST de données vers le système distant.
Pour les demandes supérieures à cette taille de tampon, HTTP / 1.1 et Transfer-Encoding: chunked
est utilisé pour éviter de créer un fichier de pack massif localement. La valeur par défaut est de 1 Mio, ce qui est suffisant pour la plupart des demandes.
Même pour le clone, cela peut avoir un effet, et dans ce cas, l' OP Joe rapporte:
[clone] fonctionne bien maintenant
Remarque: si quelque chose s'est mal passé côté serveur, et si le serveur utilise Git 2.5+ (Q2 2015), le message d'erreur peut être plus explicite.
Voir " Clonage Git: l'extrémité distante a raccroché de façon inattendue, a essayé de changer postBuffer
mais échoue toujours ".
Kulai ( dans les commentaires ) souligne cette page Atlassian de dépannage Git , qui ajoute:
Error code 56
indique qu'une boucle a reçu l'erreur, CURLE_RECV_ERROR
ce qui signifie qu'un problème a empêché la réception des données pendant le processus de clonage.
Cela est généralement dû à un paramètre réseau, un pare-feu, un client VPN ou un antivirus qui met fin à la connexion avant que toutes les données aient été transférées.
Il mentionne également la variable d'environnement suivante, afin d'aider au processus de débogage.
# Linux
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1
Avec Git 2.25.1 (février 2020), vous en savez plus sur cette http.postBuffer
"solution".
Voir commit 7a2dc95 , commit 1b13e90 (22 janvier 2020) par brian m. carlson ( bk2204
) .
(Fusionné par Junio C Hamano - gitster
- dans commit 53a8329 , 30 janvier 2020)
( discussion sur la liste de diffusion Git )
docs
: mention lors de l'augmentation de http.postBuffer est précieuse
Signature: brian m. Carlson
Les utilisateurs dans une grande variété de situations se retrouvent avec des problèmes de push HTTP.
Souvent, ces problèmes sont dus à un logiciel antivirus, à des proxys de filtrage ou à d'autres situations de l'homme du milieu; d'autres fois, ils sont dus à une simple non-fiabilité du réseau.
Cependant, une solution courante aux problèmes de push HTTP trouvés en ligne consiste à augmenter http.postBuffer.
Cela ne fonctionne pour aucune des situations susmentionnées et n'est utile que dans un petit nombre de cas très restreint: essentiellement, lorsque la connexion ne prend pas correctement en charge HTTP / 1.1.
Documenter quand augmenter cette valeur est approprié et ce qu'elle fait réellement, et décourager les gens de l'utiliser comme solution générale aux problèmes de poussée, car elle n'est pas efficace là-bas.
Donc, la documentation pour l' git config http.postBuffer
instant comprend:
http.postBuffer
Taille maximale en octets de la mémoire tampon utilisée par les transports HTTP intelligents lors du POST de données vers le système distant.
Pour les demandes supérieures à cette taille de tampon, HTTP / 1.1 et Transfer-Encoding: chunked est utilisé pour éviter de créer localement un fichier de pack massif.
La valeur par défaut est de 1 Mio, ce qui est suffisant pour la plupart des demandes.
Notez que l'augmentation de cette limite n'est efficace que pour désactiver le codage de transfert par blocs et ne doit donc être utilisée que lorsque le serveur distant ou un proxy prend uniquement en charge HTTP / 1.0 ou n'est pas conforme à la norme HTTP.
Augmenter cela n'est pas, en général, une solution efficace pour la plupart des problèmes de push, mais peut augmenter la consommation de mémoire de manière significative car la totalité du tampon est allouée même pour les petites push .