Solution rapide :
Avec ce type d'erreur, je commence généralement par relever le niveau de l'erreur postBuffer
taille par :
git config --global http.postBuffer 524288000
(certains commentaires ci-dessous rapportent avoir dû doubler la valeur) :
git config --global http.postBuffer 1048576000
(Pour npm publish
, Martin Braun rapports dans les commentaires en le fixant à un maximum de 50 000 000 au lieu de 1 000 000 par défaut)
Plus d'informations :
De la git config
page de manuel , http.postBuffer
est à propos :
Taille maximale en octets du tampon utilisé par les transports HTTP intelligents lors du POST de données vers le système distant.
Pour les requêtes dont la taille est supérieure à celle du tampon, les protocoles HTTP/1.1 et Transfer-Encoding: chunked
est utilisé pour éviter de créer localement un fichier pack massif. La valeur par défaut est de 1 MiB, ce qui est suffisant pour la plupart des demandes.
Même pour le clone, cela peut avoir un effet, et dans ce cas, le OP Joe rapports :
[clone] fonctionne bien maintenant
Remarque : si quelque chose s'est mal passé du côté du serveur, et si le serveur utilise Git 2.5+ (Q2 2015), le message d'erreur peut être plus explicite.
Voir " Clonage Git : le terminal distant s'est bloqué de manière inattendue, j'ai essayé de modifier les paramètres suivants postBuffer
mais toujours en échec ".
Kulai ( dans les commentaires ) fait remarquer à cette page Git de dépannage d'Atlassian qui ajoute :
Error code 56
indique qu'un curl reçoit l'erreur de CURLE_RECV_ERROR
ce qui signifie qu'un problème a empêché la réception des données pendant le processus de clonage.
Ce problème est généralement dû à un paramètre réseau, un pare-feu, un client VPN ou un antivirus qui interrompt la connexion avant que toutes les données aient été transférées.
Il mentionne également la variable d'environnement suivante, afin de faciliter le 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év. 2020), vous en savez plus à ce sujet http.postBuffer
"solution".
Voir commettre 7a2dc95 , commettre 1b13e90 (22 janvier 2020) par brian m. carlson ( bk2204
) .
(fusionné par Junio C Hamano -- gitster
-- sur commettre 53a8329 , 30 janvier 2020)
( Discussion sur la liste de diffusion Git )
docs
: mentionner quand augmenter http.postBuffer est utile
Signé par : brian m. carlson
Les utilisateurs se retrouvent dans des situations très diverses avec des problèmes de push HTTP.
Souvent, ces problèmes sont dus à des logiciels antivirus, à des proxys de filtrage ou à d'autres situations de type "man-in-the-middle" ; d'autres fois, ils sont dus à un simple manque de fiabilité du réseau.
Cependant, une solution courante aux problèmes de poussée HTTP trouvée en ligne consiste à augmenter http.postBuffer.
Cela ne fonctionne dans aucune des situations susmentionnées et n'est utile que dans un petit nombre de cas très restreints : essentiellement, lorsque la connexion ne prend pas correctement en charge HTTP/1.1.
Documentez quand l'augmentation de cette valeur est appropriée et ce qu'elle fait réellement, et découragez les gens de l'utiliser comme une solution générale pour les problèmes de poussée, car elle n'est pas efficace dans ce cas.
Donc la documentation pour git config http.postBuffer
comprend maintenant :
http.postBuffer
Taille maximale en octets du tampon utilisé par les transports HTTP intelligents lors du POST de données vers le système distant.
Pour les requêtes supérieures à cette taille de tampon, HTTP/1.1 et Transfer-Encoding : chunked sont utilisés pour éviter de créer localement un fichier pack massif.
La valeur par défaut est de 1 MiB, ce qui est suffisant pour la plupart des demandes.
Notez que l'augmentation de cette limite n'est efficace que pour désactiver l'encodage des transferts par morceaux et ne doit donc être utilisée que lorsque le serveur distant ou un proxy ne prend en charge que HTTP/1.0 ou n'est pas conforme à la norme HTTP.
Augmenter cette valeur n'est pas, en général, une solution efficace pour la plupart des problèmes de poussée, mais peut augmenter la consommation de mémoire de manière significative puisque le tampon entier est alloué même pour les petites poussées. .
0 votes
Pouvez-vous vérifier si votre fournisseur d'hébergement git est en ligne ?
0 votes
@Caps il est en ligne et le réseau fonctionne bien aussi. Cela semble se produire de façon constante après un certain temps.
8 votes
Pouvez-vous vérifier si un
git config --global http.postBuffer 524288000
a un effet sur votre clone ? Y a-t-il un message d'erreur supplémentaire comme un 'error: RPC failed; result=56, HTTP code = 0
'0 votes
@VonC - La commande ci-dessus s'est exécutée sans problème, je n'ai vu aucune sortie sur la console.
3 votes
@Joe êtes-vous en mesure de cloner après le
git config --global http.postBuffer 524288000
?0 votes
@Joe : excellent. J'ai posté cette configuration comme réponse alors.
0 votes
Rien de ce qui précède n'a marché pour moi, mais voici ce qui a marché : stackoverflow.com/a/22317479 Le message d'erreur complet que je recevais était le suivant : fatal : le terminal distant a raccroché de manière inattendue fatal : early EOF fatal : index-pack failed
0 votes
@Joe comme mentionné sur cet autre SO post vous devriez essayer de passer à
ssh
au lieu dehttps
0 votes
Si rien ne fonctionne ici, peut-être Impossible de cloner un gros repo est utile
0 votes
Cela a fonctionné pour moi. Veuillez suivre la réponse de ce lien. stackoverflow.com/a/45499213/5201238
0 votes
Git config --global http.postBuffer 524288000 travaillé
0 votes
Arrêtez tout et essayez avec un autre réseau. J'ai d'abord essayé sur le WiFi (pas de chance) puis plus tard je me suis connecté avec mon réseau mobile, ça a marché comme sur des roulettes.