Skip to main content

Sobre arquivos grandes no GitHub

GitHub limita o tamanho dos arquivos que você pode rastrear em repositórios do Git regulares. Aprenda a rastrear ou remover arquivos que estão além do limite.

Sobre limites de tamanho em GitHub

O GitHub tenta fornecer amplo armazenamento para todos os repositórios Git, embora existam limites rígidos para tamanhos de arquivo e de repositório. Para garantir o desempenho e confiabilidade aos nossos usuários, monitoramos ativamente os sinais da saúde geral do repositório. A saúde do repositório é uma função de vários fatores de interação, incluindo tamanho, frequência de commit, conteúdo e estrutura.

Limites de tamanho de arquivo

GitHub limita o tamanho dos arquivos permitidos nos repositórios. Se você tentar adicionar ou atualizar um arquivo maior do que 50 MB, você receberá um aviso do Git. As alterações ainda serão carregadas no seu repositório com sucesso, mas você pode considerar remover o commit para minimizar o impacto no desempenho. Para obter mais informações, confira "Como remover arquivos do histórico de um repositório".

Observação: se você adicionar um arquivo a um repositório por meio de um navegador, o arquivo não poderá ser maior que 25 MB. Para obter mais informações, confira "Como adicionar um arquivo a um repositório".

GitHub bloqueia os pushes que excedem 100 MB.

Para rastrear arquivos além desse limite, você deverá usar Git Large File Storage (Git LFS). Para obter mais informações, confira "Sobre o Git Large File Storage".

Se precisar distribuir arquivos grandes dentro do seu repositório, você poderá criar versões no GitHub.com em vez de rastrear os arquivos. Para obter mais informações, confira "Como distribuir binários grandes".

O Git não é projetado para lidar com arquivos SQL grandes. Para compartilhar bancos de dados grandes com outros desenvolvedores, recomendamos usar o Dropbox.

Limites de tamanho do repositório

Recomendamos que repositórios permaneçam pequenos, idealmente inferior a 1 GB, e o tamanho inferior a 1 GB é altamente recomendado. Os repositórios menores são mais rápidos de clonar e são mais fáceis de trabalhar com e manter. Se o seu repositório impactar excessivamente a nossa infraestrutura, você pode receber um e-mail do GitHub Support pedindo para tomar medidas corretivas. Tentamos ser flexíveis, especialmente com grandes projetos que têm muitos colaboradores e trabalharemos com você para encontrar uma resolução sempre que possível. Você pode impedir que seu repositório afete nossa infraestrutura gerenciando efetivamente o tamanho e a saúde geral do seu repositório. Encontre orientações e uma ferramenta para análise de repositório no repositório github/git-sizer.

As dependências externas podem fazer com que os repositórios do Git se tornem muito grandes. Para evitar o preenchimento de um repositório com dependências externas, recomendamos o uso de um gerenciador de pacotes. Entre os gerenciadores de pacotes populares para linguagens comuns estão o Bundler, o Gerenciador de Pacotes do Node e o Maven. Estes gerenciadores de pacotes são compatíveis com o uso direto dos repositórios do Git. Portanto, você não precisa de fontes pré-empacotadas.

O Git não foi projetado para servir como ferramenta de backup. No entanto, há muitas soluções especificamente projetadas para executar backups, como o Arq, o Carbonite e o CrashPlan.

Remover arquivos do histórico do repositório

Aviso: estes procedimentos removem definitivamente os arquivos do repositório no computador e no GitHub.com. Se o arquivo for importante, faça uma cópia de backup local em um diretório fora do repositório.

Remover um arquivo adicionado ao commit não processado mais recente

Se o arquivo foi adicionado ao commit mais recente e ainda não foi processado no GitHub.com, você poderá excluir o arquivo e corrigir o commit:

  1. Abra TerminalTerminalGit Bash. 1. Mude o diretório de trabalho atual para o seu repositório local.
  2. Para remover o arquivo, insira git rm --cached:
    $ git rm --cached giant_file
    # Stage our giant file for removal, but leave it on disk
  3. Faça commit dessa alteração usando --amend -CHEAD:
    $ git commit --amend -CHEAD
    # Amend the previous commit with your change
    # Simply making a new commit won't work, as you need
    # to remove the file from the unpushed history as well
  4. Faça push dos commits para GitHub.com:
    $ git push
    # Push our rewritten, smaller commit

Remover um arquivo adicionado em um commit anterior

Se você adicionou um arquivo em um commit anterior, você deverá removê-lo do histórico do repositório. Para remover arquivos do histórico do repositório, use o BFG Repo-Cleaner ou o comando git filter-branch. Para obter mais informações, confira "Como remover dados confidenciais de um repositório".

Distribuir binários grandes

Se você precisar distribuir arquivos grandes dentro do seu repositório, você poderá criar versões no GitHub.com. As versões permitem que você empacote software, notas de versão e links para arquivos binários para que outras pessoas possam usar. Para obter mais informações, acesse "Sobre as versões".

Não limitamos o tamanho total dos arquivos binários na versão ou a banda larga usada para entregá-los. No entanto, cada arquivo deve ser menor que 2 GB.