Git branch is not working as I am expecting
Okay so I am new to using git..and I thought I understood the concept of branching, but now I am confused.
Lets say I have a master.
I create a branch called branch1.
git checkout -b branch1 master *branch1
I made some changes on branch1, but I realized I have to do something else before finishing my work on branch1.
So I go back to master
git checkout master *master branch1
and create a new branch called branch2.
git checkout -b branch2
master branch1 *branch2
Since I didn’t commit my changes on branch1, I am expecting my branch2 will not have branch1 codes…but I am seeing the changes made from branch1.
Am I misunderstanding something?
2 Solutions collect form web for “Git branch is not working as I am expecting”
Although you were in branch1 when you made the changes, those changes are not really “in” branch1 until you commit them.
$ git help checkout:
Local modifications to the files in the working tree
are kept, so that they can be committed to the <branch>.
If, on the other hand, you commit your changes to branch1 before switching back to master, then when you
$ git checkout master, git will revert the files in your working directory back to the snapshot that master points to, as you are expecting.
If for some reason you really want to avoid committing your changes to branch1, but still work on a different branch without those changes, you might consider using
$ git stash to stash your changes, then switch to your new branch and do the work you need to, then switch back to branch1 and do
$ git stash pop to get back your stashed changes.
Since I didn’t commit my changes on branch1, I am expecting my branch2 will not have branch1 codes
Working copy (staged + unstaged changes) is the same for all branches. And what you see is not the branch1 changes, but the working copy changes.
Once you commit your changes in branch1, you’ll no longer see them in branch2 or any other branch.