Como fazer o git esquecer de arquivos que agora devem ser ignorados

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."