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.

  • Git push to GitHub failing - seems to be trying to use HTTP?
  • SVN to Git migration - undefined author, but it is
  • Answer to password shell prompt in golang
  • Updated Git but still showing old version
  • Git: Track permission change 777 to 444
  • Free & private version control hosting website
  • I create a branch called branch1.

    git checkout -b 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

    and create a new branch called branch2.

    git checkout -b 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?

  • Why is Commit Greyed-out in Eclipse's Egit
  • GIT. Ignore changes to be commited
  • Git: “The branch you are about to push seems to be a new branch for the remote” warning
  • What would be the opposite of “git fetch”?
  • Symbolic link to a hook in git
  • Is it possible to automatically split a commit for Github compare view?
  • 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.

    From $ 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.

    Git Baby is a git and github fan, let's start git clone.