Se você não se importar de excluir todos os arquivos ignorados no diretório de trabalho, os seguintes itens serão colocados em cena para todos os arquivos confirmados, mas ignorados:
find . -print0 | git check-ignore -z --stdin --no-index | xargs -0 git rm -f -r --cached --ignore-unmatch --
(assumindo o GNU find e um git para git check-ignore ). Ele também excluirá qualquer outro arquivo ou diretório ignorado.
Isso lista todos os arquivos e diretórios que começam no diretório atual, verifica se eles são ignorados (mesmo se eles estiverem confirmados) e os excluem, independentemente de estarem comprometidos, sem rastreamento, etc.
Isso funciona com qualquer arquivo .gitignore na árvore (ou mesmo em outro lugar na sua configuração git ).
Acompanhar comprometendo as alterações e empurrando-as; Como as alterações são um novo commit, você não precisará forçar nada. Reescrever o histórico para remover todas as referências a arquivos supostamente ignorados é uma tarefa um pouco mais complicada.