Git: cancela todas las operaciones para get un directory de trabajo limpio

Me gustaría escribir un script que necesita un directory de trabajo limpio. Quiero asegurarme de que cualquier rebase, fusión o cualquier otra cosa que podría no haber terminado correctamente desaparezca por completo de mi directory de trabajo.

git reset --hard debería funcionar para fusiones, y git rebase --abort funcionará para rebases, pero hay otros estados como reversing o cherry picking también. ¿Hay alguna manera segura de borrar todos esos events para que mi directory de trabajo esté limpio?

EDITAR:

Por ejemplo:

 ((5d8999f...)) $ git rebase develop (detached HEAD|REBASE 1/3) $ git reset --hard (detached HEAD|REBASE 1/3) $ git checkout HEAD -- . (detached HEAD|REBASE 1/3) $ git status rebase in progress; onto 41e6808 You are currently rebasing. (all conflicts fixed: run "git rebase --continue") 

Sé que puedo hacer git rebase --abort , pero si no hay rebase en marcha que causará un error, que no estoy de humor para tratar. Además, como se tratará de un script automático, no quiero descubrir que puede haber otros estados que no haya tenido en count.

Necesito una manera infalible para revertir mi directory de trabajo a un estado prístino para que pueda hacer cualquier command que desee sin falla.

ha desaparecido por completo de mi directory de trabajo.

 git clean -Xfd git clean -xfd # you need to use the 2 different X cases: git clean –Xfd [Remove only files ignonetworking by Git] git clean –xfd [removing all untracked files]