From: Federico Mena Quintero Date: Thu, 25 Oct 2007 16:16:04 GMT Subject: Re: best git practices, was Re: Git User's Survey 2007 unfinished summary continued Message-ID: <1193328964.4522.361.camel@cacharro.xalalinux.org> In-Reply-To: <8fe92b430710241648j609d4d00x121836001a69d1e6@mail.gmail.com> On Thu, 2007-10-25 at 01:48 +0200, Jakub Narebski wrote: > git push is opposite (almost) to git fetch, not to git pull. This asymmetry is also part of what makes Git hard to learn at first. There is a lot of new terminology to learn: refs remotes fast-forwarding rebasing origin master HEAD (which is not quite the same as good old CVS's HEAD) etc. The solution is not, "have a good glossary" (which is needed, anyway), but to make the documentation introduce those concepts at the right time, instead of being chock-full of them from the beginning :) Carl Worth's git-ification of the Mercurial book chapter is very nice in this regard; it doesn't dump all the terminology on you, but rather takes its time to introduce each concept when you are ready to know about it [1]. It's kind of sad that the first thing "man git-push" tells you is this: git-push - Update remote refs along with associated objects So you go, "refs? associated objects? whaaaaaat?" :) Imagine someone learning the GIMP a few versions ago. "I want to make this photo sharper". You go to the Filters/Enhance menu and you see Laplace Sobel Sharpen Unsharp mask All of those sharpen the image. Which one do you pick? [1] http://cworth.org/hgbook-git/ Federico