Como remover arquivos que estão listados no .gitignore mas ainda no repositório?

Eu tenho alguns arquivos no meu repositório que devem ser ignorados, eu os adicionei ao .gitignore mas, claro, eles não são removidos do meu repositório.

Então, minha pergunta é, existe um comando ou script mágico usando filtro-branch que pode reescrever meu histórico e remover todos esses arquivos facilmente? Ou simplesmente um comando que irá criar um commit que irá removê-los?

questionAnswers(5)

yourAnswerToTheQuestion