2009-10-19 19 views
5

Estoy intentando ejecutar git clone y estoy recibiendo el siguiente error:git-clone error de asignación de memoria

fatal: Out of memory, malloc failed 
fatal: index-pack died with error code 128 
fetch-pack from '[email protected]:git' failed. 

yo era capaz de hacer con éxito un clon en mi máquina local, pero está fallando cuando intento para clonar a otro servidor.

Todavía algo nuevo en todo esto, así que cualquier ayuda sería muy apreciada. :)

+0

Creo que lo fatal está sucediendo en el servidor; ¿Cuánta memoria tiene el servidor? ¿Qué tan grande es el repositorio? ¿Qué dice 'git count-objects'? –

+0

¿Qué quiere decir exactamente cuando dices "clonar ** a ** otro servidor"? – innaM

Respuesta

5

¿Tiene grandes archivos en su repositorio (como archivos de registro, por ejemplo)?
Aparentemente, su repositorio es demasiado grande para ser recuperado en su disco duro.

Hay dos cosas que puede hacer:

  • Buscar archivos grandes y eliminarlos si no son útiles (no sólo por haber cometido, sino también por modifying your history Si todavía tiene sus archivos de gran tamaño en.. nuestro repositorio, no va a ser menor.
  • hacer un "git gc". se va a archivos no utilizados de forma automática de limpieza y comprimir el repositorio.
+0

git crea un nuevo paquete para cada clon, que contiene los objetos relevantes para el clonador; entonces, no creo que git gc ayude. –

+0

Sí, pasamos por alto un archivo grande (en este caso, un archivo zip) que parecía estar causando el problema. Ese enlace sobre modificar la historia fue de gran ayuda. Gracias por eso. – nevan

+0

¿cómo se hace esto en una sucursal remota? – Paul

1

Si git en la máquina remota falla debido a las limitaciones de memoria que También puede probar rsync o scp para copiar el repositorio a su máquina local y continuar con la clonación desde allí.

0

Puede ejecutar el comando git clone con --depth -1. Esto solo obtendrá el último commit, por lo que las operaciones que involucran el historial (git log, culpar o incluso push/pull) pueden no funcionar. Sin embargo, necesita menos uso de memoria, espacio en disco y transferencias de red.

Las limitaciones se describen allí: Why can't I push from a shallow clone?