quarta-feira, 11 de agosto de 2021

Resolvendo o problema com git push quando retorna "this exceeds ... file size limit of xxx MB"

Acabei de acrescentar no commit de um de meus repositórios do GitHub um arquivo json.

Contudo ao tentar subit (git push) o commit, recebi de repente um erro:

remote: error: GH001: Large files detected. You may want to try Git Large File Storage — https://git-lfs.github.com.
remote: error: Trace: b5116d865251981c96d4b32cdf7ef464
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File json/big.json is 2000 MB; this exceeds GitHub’s file size limit of 1GB


Isto acontece porque o GitHub tem um limite para o repositório e também para o tamanho individual dos arquivos. O problema é que não dá para simplesmente remover (git rm) o arquivo porque ele é rastreado dentro dos commits anteriores. O método que permite resolver o problema consiste em remover este arquivo completamente do meu repositório.

O comando que permite que você faça isso é:

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch json/big.json'

Note que você tem que indicar explicitamente o nome do arquivo a remover. Este comando deve ser realizado na raiz do seu repositório local. Por exemplo, você não pode executá-lo dentro do diretório json, onde o arquivo big.json está.

Após a execução deste comando (para todo os arquivos que apresentam problema), você pode dar um git push para atualizar o Github.

Nenhum comentário:

Postar um comentário

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...