lsf for files descargar git git-lfs

for - git lfs server



¿Cuál es la ventaja de git lfs? (1)

Github tiene un limit en el archivo grande de inserción. Entonces, si quieres enviar un archivo grande a tu repositorio, debes usar Git LFS .

Sé que es una mala idea agregar un archivo binario en git repo. Pero si estoy usando gitlab en mi servidor y no hay límite de tamaño de archivo en un repositorio, y no me importa que el tamaño del repositorio sea muy grande en mi servidor. En esta condición, ¿cuál es la ventaja de git lfs? git clone o git checkout será más rápido?


Una especificidad de Git (y otros sistemas distribuidos) en comparación con los sistemas centralizados es que cada repositorio contiene toda la historia del proyecto. Supongamos que crea un archivo de 100 Mb, lo modifica 100 veces de forma que no se comprima bien. Terminarás con un repositorio de 10 Gb. Esto significa que cada clon descargará 10 Gb de datos, consumirá 10 Gb de espacio en disco en cada máquina en la que esté haciendo un clon. Lo que es aún más frustrante: aún tendría que descargar estos 10 Gb de datos, incluso si git rm los archivos grandes.

Poner archivos grandes en un sistema separado como git-lfs le permite almacenar solo punteros a cada versión del archivo en el repositorio, por lo tanto, cada clon solo descargará una pequeña parte de los datos para cada revisión. La verificación descargará solo la versión que está utilizando, es decir, 100 Mb en el ejemplo anterior. Como resultado, estaría utilizando espacio en disco en el servidor, pero ahorrando mucho ancho de banda y espacio en disco en el cliente.

Además de esto, el algoritmo utilizado por git gc (internamente, git repack ) no siempre funciona bien con archivos grandes. Las versiones recientes de Git progresaron en esta área y deberían funcionar razonablemente bien, pero el uso de un gran repositorio con grandes archivos podría ocasionarle problemas (como no tener suficiente RAM para volver a empaquetar el repositorio).