I come from an SVN background, and I have a hard time grasping Git's
philosophy. In particular, I'm confused by the following.
Imagine I have made some changes in my working dir. If I switch to
another branch, the changes*remain*, which is very unusual, from an SVN
point of view. This means that uncommitted changes are*shared* between
the branches. Moreover, the "stage property" of the files is also
*shared* between the branches: if I call git add * in one branch, then
all the files will be added to next commit in all the branches. Looks like
my branches differ only by already *committed* files.
So, if uncommitted data are *shared*, then, no matter which branch I am
on now, I will commit *all the staged files*, even if they were added in
different branches! As I come from an SVN background, this strikes me as
Am I correct, or am I just confused? Why does Git work in this way?
Sometimes, Git tells me something like this:
Cannot switch to another branch because your changes will be erased.
Commit them first.
In SVN, that's not a problem: branches are *independent*. Why and when
does this happen in Git?
What's up with the way Git handles folders? If I create a new folder, it
is not displayed in Git's status report. Does Git simply not care about
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.