From time to time, git clean -xfd will not only remove untracked files and directories but also remove tracked files. After cleaning I can restore those tracked files with git reset --hard head. So my flow tends to be:
git clean -xfd
git status // check whether git deleted tracked files or not
git reset --hard head // if git deleted tracked files restore them
I suspect that this over-zealous deletion might be related to having renamed a file or directory in a previous commit, and that the clean then deleted that renamed item. This is only a guess.
Is this a known issue? How can I fix it?