This should be a basic misunderstanding.
I'd like to work on a few features separately, and be able to jump from one to another at any given time. But I running into a problem. This is what I do:
I start from a local 'develop' branch, and create a new local feature branch 'A'. I do some work there - let's say I add a new file 'file A', commit the local changes with commit message 'commit A' and push them to a remote branch on github for code review.
While I wait for the code review to complete, I want to start working on a another feature 'B', which is unrelated to 'A' and doesn't depend on it.
So I check out 'develop' in order to create branch 'B' from it. While on 'develop' I type 'git log' and see that 'commit A' isn't there (what I expect). But when I browse the file system I see 'file A'! and obviously when I create branch 'B' from 'develop' file 'A' is there on branch 'B'. I don't want that. I want to work on a clean branch that has no code changes from another local branch.
What am I missing?