Remover dados binários de um repositório git após o fato

Acidentalmente cometi alguns dados binários grandes em alguns commits. Desde então, atualizei o .gitignore e esses arquivos não estão mais sendo confirmados. Mas eu gostaria de voltar aos commits mais antigos e remover seletivamente esses dados do repositório, removendo alguns diretórios que deveriam estar no .gitignore. Não quero remover os commits eles mesmos.

Como eu realizaria isso? Meu método preferido seria uma maneira de aplicar retroativamente as regras .gitignore a confirmações antigas ... uma resposta que use esse método também seria bastante útil para outras pessoas, pois tenho certeza de que meu problema não é único. Também seria rápido aplicar-se a uma solução geral, sem muita customização específica para a estrutura de diretórios exclusiva de cada usuário.

Isso é possível, da maneira mais fácil que sugiro acima, ou de uma maneira mais complicada?

questionAnswers(1)

yourAnswerToTheQuestion