I have had this happen to me often. I am working on a master branch and I need to test a plugin, so I create a new branch and check it out. I download the plugin into the pr
git will not remove untracked files from your working copy, so unless you added the files of the plugin and created a commit on the new branch git will not do anything to your plugin files.
if you want to remove untracked file from your working tree, use git clean – be careful, it will remove any untracked file from disk and there's no way to recover from that (without using undelete software)
try checkout -f
see git --help checkout:
Proceed even if the index or the working tree differs from HEAD. This is used to throw away local changes.
If you are switching back and forth between branches where the directory structures are different, and you find that there are some artifacts left over, you might need to run:
git clean -df
This will "delete" "force". You will loose ALL untracked files, I think this might be one step away from:
git reset --hard