O Que É o Git LFS?
O Git LFS, ou Large File Storage, substitui arquivos grandes no seu repositório por pequenos ponteiros, mantendo os dados reais em um armazenamento separado.
O Git é feito para texto e tem dificuldade com arquivos binários grandes como vídeos, datasets ou assets de design, que incham o histórico e deixam cada clone lento. O Git LFS resolve isso armazenando esses arquivos fora do histórico principal e deixando um ponteiro leve em seu lugar, para que o repositório permaneça enxuto.
Como funciona o Git LFS
Você diz ao LFS quais padrões de arquivo gerenciar. Para esses arquivos, o Git armazena um pequeno ponteiro de texto no histórico enquanto o conteúdo real vive em um store LFS dedicado. Quando você faz o checkout, o LFS troca os ponteiros pelos arquivos reais, então a experiência parece transparente.
Configurando o Git LFS
Você instala o LFS, rastreia um tipo de arquivo e faz commit da configuração resultante.
git lfs install
git lfs track "*.psd"
git add .gitattributes design/logo.psd
git commit -m "Track PSD files with LFS"Por que ajuda
Sem o LFS, cada versão de um binário grande fica armazenada para sempre no histórico, então os clones ficam enormes e lentos. Com o LFS, o histórico contém apenas pequenos ponteiros, e os dados grandes são buscados sob demanda. Isso mantém os clones rápidos mesmo para repositórios cheios de mídia ou binários.
Git LFS em CI/CD
Um runner de CI precisa buscar os objetos LFS, ou o build verá arquivos de ponteiro em vez do conteúdo real. As actions de checkout expõem uma opção de LFS para puxar esses objetos. Como os dados LFS podem ser grandes, buscá-los soma ao tempo e à banda do job, então habilite apenas para jobs que precisam dos binários.
Usando o LFS bem
- Rastreie apenas arquivos genuinamente grandes ou binários com o LFS.
- Faça commit do arquivo .gitattributes para que o rastreamento seja compartilhado.
- Habilite a busca de LFS no CI para jobs que precisam dos assets.
- Fique de olho nas cotas de banda e armazenamento LFS no seu host.
Principais conclusões
- O Git LFS armazena arquivos grandes fora do histórico, deixando ponteiros para trás.
- Ele mantém os clones rápidos mesmo com mídia e binários no repositório.
- O CI precisa buscar os objetos LFS ou verá ponteiros, não os arquivos reais.