On Wed, 15 Nov 2006 13:45:58 -0800 (PST), Linus Torvalds wrote: > On Wed, 15 Nov 2006, Carl Worth wrote: > > > > Well, one of the problems is that with current git I can teach, (and I > > have), that there's a conceptual: > > > > pull = fetch + merge > > > > But then shortly after I have to teach an interface notion: > > > > merge = pull . > > This is why I would suggest teaching the _concept_ of the "merge", and not > the actual command. > > I don't think you should basically ever use the "git merge" command > itself, not in teaching, and not in real life. I think that's just and accident of git-merge having such a bad syntax, (requiring a merge message, not using -m for that, requiring two heads instead of defaulting to current, etc.). So the result is accepting another bad syntax "pull ." for an operation that really is merge. > Once you've explained the _concept_ of merging, you then introduce the > command to actually _execute_ the merge: it's "git pull". I think we'll be doing better when there is a stronger correlation between the concepts of the operations and the command names for carrying them out. Plus, when I'm teaching "fetch everything first, then manipulate it locally", (which is what I teach, since that's the only way I use git), then the "." looks really out of place when I teach the 'merge' command. I end up saying, "Oh, that's there because you could do the fetch and merge all in one step if you really wanted, but I never do that.". And that's because I _do_ teach fetch first, as you've suggested. > changes from both branches. So it's a _conceptual_ issue, and that's why I > said I think you should just totally gloss over the whole issue of "git > merge" syntax. That doesn't work. I know I went looking at the git-merge documentation when I started to learn git. "It can't really be this hard, can it?" was my reaction to it. And then only after attending a tutorial did I learn that "pull ." is the way it's really done. That's nothing more than a user-interface trap for new users, plain and simple. The real fix is to stop glossing over git-merge and just give it a usable syntax. -Carl
Attachment:
pgp8kllh6SMmz.pgp
Description: PGP signature