Arquivos Grandes no Git

Em regras gerais o Git não é uma ótima ferramenta para gerenciar arquivos binários ainda mais se forem da grandeza de Megabytes.

Se adicionarmos tal arquivo no Git, simplesmente ele funciona. O problema é que se você alterar este arquivo e adicioná-lo novamente outra vez, em pouco tempo você precisará de um disco imenso para guardar todas as versões deste arquivo.

Uma alternativa seria ignorar tal arquivo no .gitignore a fim do Git não gerenciar o arquivo em questão. Mas se realmente você precisa desse arquivo em outras máquinas e é essencial para seu negocio. É ai que entra o Git Lfs.

O Git Large File Storage ou Git Lfs com é mais conhecido é a abordagem ideal para o problema de versionamento de arquivos “grandes”. Ele nada mais é que um plugin para o Git, trabalhando na ação de pré-commit, onde monitora os arquivos destinados ao uso do Lfs, adicionando um tratativa diferente para cada arquivo.

Para o funcionamento é importante salientar que tanto a máquina do cliente como o servidor remoto deve conter o Lfs. Para mais informações sobre Lfs Server basta consultar sua documentação.

A instalação do Git LFS é bem simples e rápida, primeiro instale o pacote do Git Lfs com os comandos abaixo:

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt update
sudo apt install git-lfs

Agora dentro o seu repositório você só precisa adicionar as regras de filtragem do LFS.

git lfs track '*.iso'
git lfs track '*.zip'

Agora os seu arquivos .iso e .zip serão gerenciados pelo Lfs e não ocuparão espaço exagerado indevidamente. Caso você já tenha versionado arquivos grandes no seu repositório infelizmente não há um jeito fácil de se desfazer isso. Há inúmeros tutoriais por ai explicando maneiras de se fazê-lo mas nenhuma que seja muito fácil.

Para ver os arquivos gerenciados pelo Git lfs você pode usar o comando “ls-files”.

git lfs ls-files

Consulte a documentação para maiores detalhes.