Skip to main content

Sobre arquivos grandes no GitHub

GitHub Enterprise Cloud 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.

Platform navigation

Sobre limites de tamanho em GitHub Enterprise Cloud

O GitHub Enterprise Cloud 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 de integridade geral do repositório. A integridade 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 Enterprise Cloud limita o tamanho dos arquivos permitidos nos repositórios. Se você tentar adicionar ou atualizar um arquivo maior do que 50 MiB, 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.

Note

Se você adicionar um arquivo a um repositório por meio de um navegador, o arquivo não poderá ser maior que 25 MiB. Para saber mais, confira Adicionar um arquivo a um repositório.

GitHub Enterprise Cloud bloqueia arquivos maiores que 100 MiB.

Para rastrear arquivos além desse limite, você deverá usar Git Large File Storage (Git LFS). Para saber mais, confira Sobre armazenamento de arquivo grande do Git.

Se você precisar distribuir arquivos grandes no repositório, crie versões no GitHub.com em vez de acompanhar 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 o uso de um serviço de compartilhamento de arquivos.

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 Suporte do GitHub 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

Warning

Esses 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 você ainda não fez push deles no GitHub.com, exclua o arquivo e corrija o commit:

  1. Abra TerminalTerminalGit Bash.

  2. Mude o diretório de trabalho atual para o seu repositório local.

  3. Para remover o arquivo, insira git rm --cached:

    $ git rm --cached GIANT_FILE
    # Stage our giant file for removal, but leave it on disk
    
  4. 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
    
  5. Faça push dos commits no 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, recomendamos o comando git filter-repo. Para saber mais, confira Remover dados confidenciais de um repositório.

Como alternativa, se você não quiser instalar uma ferramenta adicional, poderá usar um rebase interativo para remover commits problemáticos. Para fazer isso:

  • Você deve saber quais commits adicionaram ou modificaram o arquivo em questão.
  • O commit deve fazer parte de apenas um branch.
  • O único branch ao qual os commits pertencem não deve ter tido mesclagens desde que os commits foram aplicados.

Para saber mais sobre rebases interativos, confira Usar rebase do Git na linha de comando. Se você não tiver certeza se atende às condições necessárias para corrigir com um rebase interativo, deverá usar git filter-repo.

Distribuir binários grandes

Se você precisar distribuir arquivos grandes no seu repositório, crie 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 GiB.