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.)