Geralmente, para descartar as alterações em um arquivo, você faria:
git checkout -- <file>
E se a alteração que eu quiser descartar estiver excluindo o arquivo? A linha acima daria um erro:
error: pathspec '<file>' did not match any file(s) known to git.
Qual comando restaurará esse arquivo único sem desfazer outras alterações?
ponto de bônus: Além disso, e se a alteração que eu quiser descartar estiver adicionando um arquivo? Eu gostaria de saber como desfazer essa mudança também.