¿Cómo completar un clon de git para un gran proyecto en una conexión inestable?
Estoy intentando clonar el código base de LibreOffice, pero en este momento tengo una conexión a Internet de aproximadamente 300 kbps y es todo menos estable. Puedo recuperar la conexión en cualquier momento, pero el proceso de clonación de git ya dejó de funcionar y no hay forma de volver a ejecutarlo. ¿Hay alguna manera de tener una descarga de clon de git más resistente a fallas?
Una opción que consideré es descargar el directorio .git de otra persona, pero depende demasiado de los demás y no me parece la mejor solución posible.
Dos soluciones (o más bien soluciones alternativas ) que me vienen a la mente son:
Utilice un clon superficial , es decir
git clone --depth=1
, luego profundice este clon utilizandogit fetch --depth=N
, aumentando N . Puede utilizargit fetch --unshallow
(desde 1.8.0.3) para descargar todas las revisiones restantes.Pídale a alguien que se agrupe con alguna versión etiquetada (consulte la página de manual de git-bundle(1) ). El paquete en sí es un archivo normal, que puede descargar de cualquier forma, a través de HTTP/FTP con soporte para currículum, a través de BitTorrent, a través de rsync, etc. Luego puede crear un clon del paquete, corregir la configuración y realizar más búsquedas en el repositorio oficial de LibreOffice. .
No creo que esto esté listo todavía. Hay una página antigua de GSoC que planeaba implementar la función deseada. Mi mejor opción es, como sugirió, descargarlo como un directorio. Supongo que puede reanudar las descargas mediante otros protocolos.
Clon reiniciable
Al clonar un repositorio grande (como KDE, Open Office, kernel de Linux), actualmente no hay forma de reiniciar un clon interrumpido. Es posible que a un usuario que se encuentra al final de una tubería pequeña le lleve un tiempo considerable descargar los datos, y si el clon se interrumpe en el medio, el usuario deberá empezar de nuevo desde el principio e intentarlo de nuevo. Para algunos usuarios, esto puede hacer imposible clonar un repositorio grande.
Objetivo: permitir que git-clone reanude automáticamente una descarga previamente fallida a través del protocolo nativo git://. Idioma: C Mentor: Shawn Pearce Sugerido por: Shawn Pearce en gmane
Actualizar
Junto con la git clone --depth=1
sugerencia de clonación superficial () en una de las otras respuestas, puede ser útil si alguien puede crear un repositorio simple para usted si puede comunicarse con el proveedor. Puede convertir fácilmente el repositorio básico en un repositorio completo. Lea también los comentarios en esa respuesta, ya que es posible que un clon superficial no siempre ayude.
Este método utiliza un servidor de terceros.
Primero, hazlo
git clone --bare
, luego
rsync -v -P -e ssh user@host:repo.git .
puedes usar msys en Windows.
Aumentar el tamaño del búfer le ayudará con este problema. Sólo sigue los pasos.
Abra la terminal o Git Bash y
cd
vaya a la ubicación donde desea clonar el repositorio.Establecer la compresión en 0
git config --global core.compression 0
Establecer
postBuffer
tamañogit config --global http.postBuffer 1048576000
Establecer
maxRequestBuffer
tamañogit config --global http.maxRequestBuffer 100M
Ahora comienza a clonar
git clone <repo url>
Espere hasta que se complete la clonación.