O problema de hoje é o seguinte: enviei (commit) alguns arquivos para o repositório e depois (de um bom tempo, ou seja, vários commit) descobri que estes arquivos não eram necessários estar no meu controle de versão Git… e agora, como eu removo eles do repositório?
A primeira coisa é criar e/ou editar o arquivo .gitignore, colocando nele a lista de pastas e arquivos que eu quero que o git ignore, em outras palavras, arquivos que eu não quero. Porém, isto só resolve para arquivos que ainda não foram enviados para o repositório!
Então, como eu faço para remover os arquivos que já foram enviados para o repositório?
Se fosse no último commit e eu ainda não tivesse enviado para um repositório remoto, eu poderia fazer um –amend no commit. Porém, e quando já fiz vários commits; enviei para o repositório; outros desenvolvedores já pegaram (checkout) o meu commit; etc?
Achei uma dica no Stack Overflow que resolve este problema facilmente. Segue os comandos:
git ls-files --ignored --exclude-standard |xargs git rm --cached git commit -am "Remove os arquivos ignorados."