Removendo arquivos excluídos de um git commit

Freqüentemente, eu excluo um monte de arquivos e descubro que a mudança ainda não foi testada.

# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: js/foo.js
# deleted: js/bar.js

Agora eu tenho que remover manualmente todos eles do meu commit.

Bem, não tão rápido. Basta fazer este comando:

git ls-files -dz | xargs -0 git rm

e pronto! Todas as remoções serão encenadas. (Nota: usar os sinalizadores -z e -0 é opcional – eles evitam que nomes de arquivos com espaços confundam o comando.)