Untracked files between branches in Git

branch, git

Solution

"I'm not ready to commit the changes locally yet."

Commits in git are local things that can be undone, redone and re-re-done at will. It's only when you push the commit somewhere that you need to pay attention.

Plus, commits are visible to local tools like `gitk`, and can have diffs taken of them and can be rebased onto other commits, etc. It's a very powerful tool. Learn to use it.

I frequently do:

git add .; git commit -a -m 'WIP'

just to stash away everything in the current work tree if I think I might be interrupted. If I make a few more changes, I use:

git add .; git commit --amend

to update my "WIP" commit in-place. When I'm finally ready for the real commit, I just:

git reset --soft HEAD~; git reset

and now I can carefully control what the final commit will be.

Problem

I've been searching around here for to look for an answer and it seems I may just be making incorrect assumptions on how git branches are supposed to work. I have my `master` branch and I've created a feature branch called `profiles` where I'm doing some specific work to profiles. While working on profiles I've changed 5 or 6 files and added another 5 or 6 new files. I needed to switch back to the `master` branch to fix a quick bug and noticed all the new files and modified files where in there as well. I guess this makes sense since git isnt going to remove untracked files from the `master` branch and bring them back for my `profiles` branch since they are, in fact, untracked. But what about the changes to existing files. Why are they showing up in the master branch. Whats the best practice here. I'm not ready to commit the changes locally yet. Should I just be stashing all these changes, switch to `master`, make the small fix, switch back to `profiles` then reapply the stash? Any help is appreciated. Thanks

Original source