Depois de editar .gitignorepara corresponder aos arquivos ignorados, você pode fazer git ls-files -ci --exclude-standardpara ver os arquivos incluídos nas listas de exclusão; você pode então fazer
//On Linux:
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
//On Windows:
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
//On mac
alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
para removê-los do repositório (sem excluí-los do disco).
Editar : Você também pode adicionar isso como um alias no seu arquivo .gitconfig para poder executá-lo quando quiser. Basta adicionar a seguinte linha na seção [alias] (modifique conforme necessário para Windows ou Mac):
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
(A -rflag in xargsimpede a git rmexecução de um resultado vazio e a impressão de sua mensagem de uso, mas pode ser suportada apenas pelo GNU findutils. Outras versões xargspodem ou não ter uma opção semelhante.)
Agora você pode digitar git apply-gitignoreseu repositório e ele fará o trabalho para você!