Using git on mac (sierra); git version 2.8.4 (Apple Git-73)
git checkout <master>
command doesn't revert the file changes which are made on another branch.
Here's what i did.
cd project_folder
git clone -o origin -b master [email protected]:prj/PRODUCTION.git
git branch -b new_branch
git checkout new_branch
<make changes to an existing file>
git checkout master
Am expecting to see a clean version of master without the changes that were made in new_branch. But the changes that i made is carried forward when i switch between branches.
Previously (long time back) this used to work like what i expected. Am i missing something?
I did fair amount of google & stackoverflow searches. Didn't yield a result i was looking for. Closest results that i got are, but they didn't help me much. 1. https://superuser.com/questions/892847/git-branch-branches-not-different 2. Git branch switching does not change code folder files
This is the expected behavior, and is what I normally see when using Git. From the documentation for git checkout:
To prepare for working on <branch>, switch to it by updating the index and the files in the working tree, and by pointing HEAD at the branch. Local modifications to the files in the working tree are kept, so that they can be committed to the <branch>.
If you need to switch branches and your working directory is not clean, here are a couple of options:
1) you can make a temporary commit on your current branch:
git commit -m 'WIP'
I say "temporary" but really this is just like any other commit. The only difference is that when you return to this branch you will amend this commit once you have finished the task via:
git commit --amend -m 'Finished WIP'
2) Stash away your changes via
git stash
Stashing will create two commits, one for the working directory and one for the stage. When you want to bring these changes back you can apply these changes via:
git stash apply
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With