threads / discuss / 11605

git-checkout question

Subject: git-checkout question

## tl;dr

3 messages between Jan 13, 2008 and Jan 13, 2008.

replies: 2people: 2as markdown or json

David J. Neu· Jan 13, 2008, 14:21 UTC · lore
Hi, 
I was wondering if someone could explain the following behavior.
1. create and switch to branch off master
2. edit a file in the branch
3. checkout master without committing changes in the branch
4. the changes in the branch are automatically applied in working tree 
   in master

I wasn't expecting the changes in the branch to be automatically moved to master. Had I committed while in the branch this doesn't happen. I'm using git version 1.5.3, the details are below.

Many thanks!

Cheers, David

[/tmp] mkdir git-test
[/tmp] cd git-test
[/tmp/git-test] git-init 
Initialized empty Git repository in .git/
[/tmp/git-test] # create hello.py
[/tmp/git-test] git-add hello.py 
[/tmp/git-test] git-commit   
Created initial commit 58282ee: Initial commit of git-test.
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello.py
[/tmp/git-test] cat hello.py 
print "hello from master."
[/tmp/git-test] git-checkout -b test-branch
Switched to a new branch "test-branch"
[/tmp/git-test] # modify hello.py
[/tmp/git-test] cat hello.py 
print "hello from test-branch."
[/tmp/git-test] git-checkout master
M       hello.py
Switched to branch "master"
[/tmp/git-test] cat hello.py 
print "hello from test-branch."
[/tmp/git-test] # hmmm?
Steffen Prohaska· Jan 13, 2008, 14:31 UTC · re: David J. Neu · lore

Re: git-checkout question

On Jan 13, 2008, at 3:21 PM, David J. Neu wrote:
Show 11 quoted lines
> I was wondering if someone could explain the following behavior.
>
> 1. create and switch to branch off master
> 2. edit a file in the branch
> 3. checkout master without committing changes in the branch
> 4. the changes in the branch are automatically applied in working tree
>    in master
>
> I wasn't expecting the changes in the branch to be automatically
> moved to master.  Had I committed while in the branch this doesn't
> happen.

This already is the explanation. You did not commit. Therefore, the changes are not in the branch but still in your work tree. They are on neither branch; they are _only_ in your work tree. If you switch the branch the changes will stay in the work tree. They always stayed in the same place: your work tree.

	Steffen
David J. Neu· Jan 13, 2008, 15:12 UTC · re: Steffen Prohaska · lore

Re: git-checkout question

On Sun, Jan 13, 2008 at 03:31:19PM +0100, Steffen Prohaska wrote:
Show 23 quoted lines
> 
> On Jan 13, 2008, at 3:21 PM, David J. Neu wrote:
> 
> >I was wondering if someone could explain the following behavior.
> >
> >1. create and switch to branch off master
> >2. edit a file in the branch
> >3. checkout master without committing changes in the branch
> >4. the changes in the branch are automatically applied in working tree
> >   in master
> >
> >I wasn't expecting the changes in the branch to be automatically
> >moved to master.  Had I committed while in the branch this doesn't
> >happen.
> 
> This already is the explanation.  You did not commit.  Therefore,
> the changes are not in the branch but still in your work tree.
> They are on neither branch; they are _only_ in your work tree.
> If you switch the branch the changes will stay in the work tree.
> They always stayed in the same place: your work tree.
> 
> 	Steffen
> 
Ahh, got it - thanks!

← back to recent threads