Hi, On Thu, 17 Jul 2008, Dmitry Potapov wrote: > On Wed, Jul 16, 2008 at 06:21:02PM +0100, Johannes Schindelin wrote: > > > > I had the pleasure of introducing Git to a few users in the last > > months and in my opinion, restricting myself to teaching them these > > commands first helped tremendously: > > > > - clone, pull, status, add, commit, push, log > > Yes, it is a good list, and I think it is very important at the > beginning to limit the number commands to 7-8, otherwise many users may > be confused. And, of course, it is better to stay away from all > command-line options at first... Thanks. > > All of these were presented without options, to keep things simple. > > > > In particular, I refrained from giving them the "-a" option to commit. > > That seemed to help incredibly with their embracing the index as a > > natural concept (which it is). > > Most things that we call as "natural" is those that we got used. In this case, I have to add that it is natural because it is the way you _have_ to do it. Even if the other SCMs hide it. You almost never commit a full revision. You usually update just a couple of files. Now, even CVS has an extra command to add a file, so it accepts the fact that staging and committing are two different operations, even if "cvs add" does not stage the changes of a tracked file. Of course, it is easier for us: we can use all the lessons learnt from CVS. > > Now, it makes me really, really sad that Git has a reputation of being > > complicated, but I regularly hear from _my_ users that they do not > > understand how that came about. > > I think this reputation is largely due to people who open Git user > manual, read about >100 commands, were horrified and stopped learning. Heh. I catually would be delighted if one outcome of this discussion would be that the user manual starts with a nice big chapter describing just my first set of commands, without options. Another nice outcome could be if all the plumbing man pages were moved into a different section, and all the porcelain's man pages would be changed to avoid referring to plumbing. It could be a good idea, too, to explain advanced topics not by command, but by scenario. > > Am I the only one who deems teaching plumbing to users ("I like it > > raw! So I teach it the same way!") harmful? > > There is only one thing that seems to be true about teaching Git (or > anything else) -- there is no single method that works equally well > for anyone. I disagree. I think that the first steps are the same for everyone. Ciao, Dscho -- 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