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.