Por qué Git tiene problemas con archivos grandes
Git almacena instantáneas completas de objetos. Cuando haces commit de un binario de 100 MB, los 100 MB completos se añaden al repo.
Qué hace LFS
Git Large File Storage (LFS) reemplaza archivos grandes en tu árbol de trabajo con archivos punteros pequeños de texto. El contenido real vive en un servidor LFS separado.
Instalación
brew install git-lfs
sudo apt install git-lfs
git lfs install
Rastrear archivos
git lfs track "*.psd"
git lfs track "*.mp4"
git lfs track "assets/raw/**"
git add .gitattributes
git commit -m "Track binaries with LFS"
Verificar el rastreo
git lfs ls-files
git lfs status
Migrar archivos existentes
git lfs migrate import --include="*.psd,*.mp4" --everything
Cuotas y precios
El almacenamiento y ancho de banda LFS son facturados por la mayoría de hosts. GitHub da 1 GB de almacenamiento y 1 GB de ancho de banda mensual gratis.
Clonar con LFS
git clone https://git.example.com/repo.git
git lfs pull
GIT_LFS_SKIP_SMUDGE=1 git clone <url>
Trampas comunes
- Olvidar hacer commit de
.gitattributes. - Rastrear después de hacer commit — el archivo aún es grande en la historia.
- Los objetos LFS no están en
.git/objects; viven en.git/lfs.