Use git filter-branch. Um exemplo da página de manual:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD
Estou usando o git para manter todos os meus sites de backup aqui. Funciona muito bem, posso entrar e sair de um backup específico com um comando.
O problema é que isso é incremental. Mesmo se eu excluir um arquivo agora, ele ainda estará lá nas revisões antigas. Isso é bom, mas existem alguns arquivos grandes, como backups de sql, que eu não preciso manter todo o histórico.
Como faço backup do meu banco de dados todos os dias, em um nome de arquivo diferente, estou ficando sem espaço = p
Como posso remover permanentemente arquivos antigos / excluídos do meu repositório git?