Subject: Re: Git branches - confusing behavior

From: Jakub Narebski <[email-masked]>
Date: Sun, 11 May 2008 04:42:10 -0700 (PDT)

Dima Kagan <[email-masked]> writes:

> I'm currently evaluating git for doing some local work without
> depending on the main subversion server. I started with the following
> steps:
> 
> > git-svn clone http://svn.test.org/test/trunk
> > cd trunk
> > git branch test_branch
> > git checkout test_branch
> > vi somefile
> 
> Now, when I run 'git status' I get:
> # On branch test_branch
> # Changed but not updated:
> #   (use "git add <file>..." to update what will be committed)
> #
> #       modified:   somefile
> #
> no changes added to commit (use "git add" and/or "git commit -a")

And now you have 'somefile' in the working arew, which state isn't
saved anywhere git knows of.
 
> This is what I expect of course. However, when I execute 'git checkout
> master', I get:
> M       somefile
> Switched to branch "master"

Git tries hard to preserve your modifications.  If you don't want to
commit changes to test_branch, you can use git-stash to stash them
away.

Note that the above is possible only in the trivial merge case.
Otherwise you would need to use "git checkout -m" (to merge), or
"git checkout -f" (to force checkout, possibly losing changes).

> And after running 'git status' on master I get:
> # On branch master
> # Changed but not updated:
> #   (use "git add <file>..." to update what will be committed)
> #
> #       modified:   somefile
> #
> no changes added to commit (use "git add" and/or "git commit -a")
> 
> Basically I see that the same file I edited on the 'test_branch'
> branch appears to be modified on the 'master' branch as well. This
> behavior is unwanted, of course.
>
> Can someone please tell me, what am doing wrong? Or is this git's
> normal behavior?

This is normal, and wanted, behavior.

-- 
Jakub Narebski
Poland
ShadeHawk on #git