picardo
picardo

Reputation: 24896

Why doesn't Git remove some files when I switch a branch?

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 project directory and test it out. Then I switch back to the master branch and delete the branch I had created.

What ends up happening is the files of the plugin remain in the project directory. I'm wondering if this is normal behavior. What do I have to do in order to have a seamless switch between branches?

Upvotes: 18

Views: 9915

Answers (3)

Olin Blodgett
Olin Blodgett

Reputation: 188

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

Upvotes: 2

knittl
knittl

Reputation: 265864

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)

Upvotes: 13

ipsum
ipsum

Reputation: 1052

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.

Upvotes: 1

Related Questions