On 2008.05.11 15:33:21 +0300, Dima Kagan wrote: > >> 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? > > > > I just realized that this behavior is even more confusing. If I > commit the file on 'test_branch' and only then 'git checkout master' > the changes are not visible on 'master' until I merge. So why should > 'master' be affected by uncommitted changes on some branch??? Uncommitted changes are not on any branch, they are in your working tree and/or your index. And actually, SVN does the exact same thing. # Create a SVN repository with trunk/ and branches/ # ---- $ mkdir svn $ cd svn $ svnadmin create repo $ export REPO="file://$PWD/repo" $ svn co $REPO wc Checked out revision 0. $ cd wc $ svn mkdir trunk branches A trunk A branches $ svn commit -m init Adding branches Adding trunk Committed revision 1. $ svn switch $REPO/trunk D trunk D branches Updated to revision 1. # Create some content in trunk # ---- $ echo 123 > testfile $ svn add testfile A testfile $ svn commit -m test Adding testfile Transmitting file data . Committed revision 2. # Create a branch # ---- $ svn cp $REPO/trunk $REPO/branches/b1 -m branch Committed revision 3. # Produce some uncommitted changes on trunk # ---- $ echo 456 > testfile $ svn st M testfile $ svn diff Index: testfile =================================================================== --- testfile (revision 2) +++ testfile (working copy) @@ -1 +1 @@ -123 +456 # Switch to the branch # ---- $ svn switch $REPO/branches/b1 At revision 3. $ svn st M testfile $ svn diff Index: testfile =================================================================== --- testfile (revision 3) +++ testfile (working copy) @@ -1 +1 @@ -123 +456 The uncommitted changes survived the branch change and are still in the working tree, in svn just like in git. Björn -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html