Cómo funciona Git LFS: Visión general de Git Large File Storage

Los equipos de desarrollo de todo el mundo utilizan Git para gestionar el código fuente. Y muchos utilizan Git LFS -Git Large File Storage- para gestionar y almacenar archivos de gran tamaño. Aquí, desglosamos lo que hace Git LFS y cuándo utilizarlo.

¿Puede Git manejar archivos grandes?

Git no puede manejar archivos grandes por sí mismo. Por eso muchos equipos de Git añaden Git LFS para manejar archivos grandes en Git.

¿Qué es Git LFS (Git Large File Storage)?

Git LFS es una extensión de Git que se utiliza para gestionar archivos grandes y binarios en un repositorio Git separado.

La mayoría de los proyectos de hoy en día tienen tanto código como activos binarios. Y el almacenamiento de grandes archivos binarios en los repositorios de Git puede ser un cuello de botella para los usuarios de Git.

Por eso algunos usuarios de Git añaden Git Large File Storage (LFS).

¿Cómo funciona Git LFS?

Git LFS utiliza punteros en lugar de los propios archivos u objetos binarios grandes (blobs).

Así, en lugar de escribir archivos/blobs grandes en un repositorio Git, se escribe un archivo puntero. Y los propios archivos/blobs se escriben en un servidor separado. Usted puede incluso utilizar múltiples servidores en Git LFS.

Comenzar es bastante sencillo. Se descarga la extensión y se configuran los tipos de archivos.

El uso de Git LFS permite versionar archivos grandes (y gestionar blobs) a la vez que se libera espacio en los repositorios de Git. Y Git LFS es a menudo una solución para empujar archivos grandes a GitHub.

Problemas de Git más allá de LFS

Git tiene problemas más allá de Git LFS. Y la seguridad es uno de los grandes. El Git nativo carece de seguridad, y las opciones complementarias para asegurar Git no son muy buenas. Descubre lo que deberías hacer con respecto a la seguridad de Git en nuestro libro blanco – Cómo bloquear Git.

Bloquear Git

¿Debo usar Git LFS?

Deberías usar Git LFS si tienes archivos grandes o binarios que almacenar en los repositorios de Git.

Eso es porque Git está descentralizado. Así, cada desarrollador tiene el historial de cambios completo en su ordenador. Y los cambios en archivos binarios grandes hacen que los repositorios de Git crezcan por el tamaño de ese archivo cada vez que se modifica el archivo (y ese cambio se confirma). Esto significa que se tardará mucho en conseguir los archivos. Y si lo haces, será difícil versionar y fusionar los binarios.

Así, cada vez que los archivos crecen, el repositorio de Git crece. Y cuando los usuarios de Git necesitan recuperar y clonar un repositorio, esto crea problemas.

Git LFS fue creado para resolver estos problemas. Pero tiene sus propios problemas…

Cuando Git Large File Storage no funciona

Git LFS funciona. Pero los equipos nos dicen constantemente que es difícil de gestionar. Así que, aunque Git es gratuito, puede acumular costes de productividad.

Instalar Git LFS en cada servidor y estación de trabajo (y/o repo) lleva tiempo. También supone una carga para los administradores. Una vez instalado, no hay visibilidad y poco control sobre él. ¿Y si algunos desarrolladores no tienen la extensión Git LFS? Se rompe.

Se necesitan pasos adicionales para mantener Git Large File Storage con corredores de construcción, como Jenkins. Eso lleva a un tiempo extra – y una complejidad extra.

Todo esto puede llevar a problemas de rendimiento.

Alternativas a Git LFS

Git LFS no es la única manera de gestionar archivos grandes en Git. Existen alternativas.

Esto incluye otras correcciones de código abierto o de terceros, como:

  • git-annex
  • git-bigfiles
  • git-fat
  • git-media
  • git-bigstore
  • git-sym

Pero, al igual que Git LFS, estas opciones de almacenamiento de archivos grandes de Git pueden crear problemas. Hay una mejor manera de gestionar los archivos grandes y los archivos binarios.

El mejor control de versiones para archivos binarios grandes: Helix Core

Los proyectos de hoy en día son más grandes, con más archivos y activos mezclados que nunca. Git y Git LFS por sí solos no pueden gestionar eso. Pero Helix Core sí puede.

Helix Core -el software de control de versiones de Perforce- es la mejor opción para gestionar archivos binarios de gran tamaño. Esto se debe a que el almacenamiento de archivos grandes es una capacidad nativa, no un complemento. Y es a prueba de balas.

En Helix Core, puede almacenar binarios junto a su código fuente. De hecho, todos sus archivos más grandes – archivos binarios, código fuente, archivos de arte, archivos de vídeo, imágenes, bibliotecas y artefactos de construcción – pueden vivir juntos en un solo repositorio. Sin ralentizar a los equipos grandes y distribuidos.

Compruebe usted mismo por qué Helix Core es la herramienta elegida para gestionar archivos binarios grandes.

Gestione archivos grandes en Helix Core

Por cierto, Perforce también tiene Git

¿Todavía tiene equipos que necesitan gestionar archivos grandes en Git? Puede incorporarlos a su pipeline de construcción con las herramientas Git de Perforce: Helix4Git y Helix TeamHub.

Helix4Git es un servidor Git dentro de un servidor Perforce. Helix TeamHub es una solución de alojamiento de código Git. Estas herramientas permiten a los equipos Git aprovechar la velocidad y el rendimiento de Helix Core – mientras se trabaja en Git.

Así que puede usar Helix4Git junto con Helix Core para llevar su repositorio Git a su pipeline de construcción. Helix4Git permite a tus desarrolladores seguir utilizando sus herramientas Git nativas. Pero obtienen sus archivos mucho más rápido.

Obtiene:

  • Un rendimiento más rápido de la construcción CI/CD.
  • Soporte para proyectos de múltiples repositorios, repositorios de artefactos, e incluso un registro de contenedores Docker.
  • La capacidad de añadir gradualmente nodos.
  • Replicación y contenido actualizado garantizado sin retraso, en lugar de copiar.

Leave a Reply