Excluir arquivo do git repo

2

Eu cometi um grande erro.

Eu fiz um repo com alguns arquivos. Eu fiz alguns commits, tudo estava dando certo. Mas então eu percebi, dois arquivos tiveram um erro muito grande, o que fez com que eles tivessem cerca de 200 Mb de tamanho, quando deveriam ter cerca de 2 Mb (sem brincadeira). Eles estão no commit da raiz. Eu consegui alterar o commit da raiz com os arquivos corretos, mas meu repositório ainda tem cerca de 500 Mb, o que dificulta muito o gerenciamento. Se eu redefinir para o commit root, esses arquivos são os arquivos certos.

Ainda não enviei um repo central por causa disso. Leva apenas uma eternidade para carregar 500 MB.

Então, eu queria saber como eu poderia excluir os arquivos de 200Mb do repo, mesmo que eles não estejam mais em nenhum commit. Quais comandos devo usar? Devo simplesmente excluir os maiores arquivos blob? Eu sou louca? Eu fiz algo realmente errado?

Obrigado. Estou realmente com pressa.

[ATUALIZAÇÃO]

Eu já tinha rodado o git gc, mas ele reduziu apenas cerca de 40 Mb. Eu acho que esses arquivos desagradáveis ainda estão lá, então eu não tenho certeza do que fazer.

    
por Hugo A 05.03.2013 / 08:51

2 respostas

0

A maneira mais fácil de reduzir seu repositório local (não é necessário para push, como Micheal Anderson afirmou corretamente) é ir para um diretório diferente e executar git clone /path/to/your/repo . Este novo repo deve ser pequeno agora - continue seu trabalho lá.

    
por 07.03.2013 / 09:43
2

Para remover os arquivos do histórico do repositório, use git filter-branch . No entanto, isso só remove os arquivos de todas as árvores, você ainda pode ter o conteúdo do arquivo sentado em blobs dentro do cache do objeto git. Você pode limpá-los usando git gc .

No entanto, você não precisa se preocupar com os blobs descomprometidos que foram colocados no repositório principal, já que apenas os blobs anexados à árvore de commits que você está enviando são enviados para o outro servidor.

Se você já criou os arquivos grandes, a limpeza dos blobs não anexados no repositório remoto é mais complicada. Consulte link

    
por 05.03.2013 / 09:04

Tags