From: Andreas Ericsson <ae@op5.se>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: Considering teaching plumbing to users harmful
Date: Fri, 18 Jul 2008 10:19:19 +0200 [thread overview]
Message-ID: <48805207.80504@op5.se> (raw)
In-Reply-To: <alpine.DEB.1.00.0807161804400.8950@racer>
Johannes Schindelin wrote:
> Hi,
>
> there have been a number of occasions where I came across people trying to
> be helpful and teaching Git newbies a few tricks.
>
> However, in quite a number of cases, which seem to surge over the last
> weeks, I see people suggesting the use of rev-parse, ls-tree, rev-list
> etc.
>
> Their rationale is invariably "but I found it useful", and they seem to be
> unable to recognize the puzzlement in the faces of the people they are
> trying to help.
>
> Instead they insist that they did nothing wrong.
>
> 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
>
> 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).
>
> Often I presented the "pull" and "push" commands _only_ with "origin
> master" ("origin is where the repository came from, and master is the
> branch; you will want to use other parameters here after you used Git for
> a while").
>
> _After_ they grew comfortable with Git, I taught them a few options here
> and there, not hiding, but also not promoting the full range of options.
>
> So the next tricks were
>
> - log -p, rm, diff, diff --cached, show
>
> The last one is "show", and with that command, I taught the
> "<commit>:" and "<commit>:<file>" syntax, too (which some Git old-timers
> did not know about ;-)
>
Thanks for the excellent write-up. I wish I'd had this when I did the
introductory courses at my dayjob. With those simple commands, 90%
of the users get access to 90% of the usefulness of git, imo. And,
more importantly, it's enough to get them started right away.
> The pace needed to be adjusted to the users, in my experience, but not the
> order.
>
> 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.
>
> Am I the only one who deems teaching plumbing to users ("I like it raw!
> So I teach it the same way!") harmful?
>
I wholeheartedly agree. Telling people about "git rev-list" on day one
is probably the single greatest mistake I've ever done wrt git. To the
non-gitizen, it takes some mumbo-jumbo arguments and spits out a long
list of mumbo-jumbo output. Had I started with "git log" instead, it
would have been infinitely easier to explain how each commit has a
totally unique name.
In addition, I'd recommend setting
color.branch=auto
color.diff=auto
color.pager=true
color.status=true
before starting the "course". It makes the learning experience a whole
lot nicer.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
next prev parent reply other threads:[~2008-07-18 8:21 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-16 17:21 Considering teaching plumbing to users harmful Johannes Schindelin
2008-07-16 17:50 ` Jesper Eskilson
2008-07-16 18:14 ` Johannes Schindelin
2008-07-16 18:19 ` Jesper Eskilson
2008-07-16 18:27 ` Johannes Schindelin
2008-07-16 17:53 ` Avery Pennarun
2008-07-16 18:12 ` Johannes Schindelin
2008-07-16 18:35 ` Avery Pennarun
2008-07-16 20:13 ` Theodore Tso
2008-07-16 21:53 ` Daniel Barkalow
2008-07-17 11:18 ` David Kastrup
2008-07-17 15:52 ` Jakub Narebski
2008-07-17 16:05 ` David Kastrup
2008-07-17 16:18 ` Subversion's do-everything-via-copying paradigm ( was RE: Re: Considering teaching plumbing to users harmful) Craig L. Ching
2008-07-17 21:05 ` David Kastrup
2008-07-17 22:06 ` Craig L. Ching
2008-07-17 22:07 ` Avery Pennarun
2008-07-17 22:11 ` Junio C Hamano
2008-07-17 20:04 ` Considering teaching plumbing to users harmful Jakub Narebski
2008-07-17 20:12 ` Kevin Ballard
2008-07-17 20:26 ` Petr Baudis
2008-07-17 20:40 ` Kevin Ballard
2008-07-17 21:03 ` Jakub Narebski
2008-07-17 21:10 ` Kevin Ballard
2008-07-17 20:34 ` Jakub Narebski
2008-07-17 20:42 ` Kevin Ballard
2008-07-17 20:15 ` Kevin Ballard
2008-07-17 21:02 ` David Kastrup
2008-07-17 22:32 ` Robin Rosenberg
2008-07-18 7:41 ` Dmitry Potapov
2008-07-17 16:11 ` Subversion is actually not so simple (was RE: Considering teaching plumbing to users harmful) Craig L. Ching
2008-07-17 17:37 ` Jakub Narebski
2008-07-17 19:00 ` Considering teaching plumbing to users harmful Daniel Barkalow
2008-07-16 18:18 ` Junio C Hamano
2008-07-16 18:51 ` Avery Pennarun
2008-07-16 18:59 ` Petr Baudis
2008-07-16 19:22 ` Avery Pennarun
2008-07-16 19:09 ` Junio C Hamano
2008-07-16 19:29 ` Avery Pennarun
2008-07-16 19:34 ` Junio C Hamano
2008-07-16 19:46 ` Avery Pennarun
2008-07-16 20:12 ` Junio C Hamano
2008-07-16 22:32 ` Theodore Tso
2008-07-16 22:41 ` Junio C Hamano
2008-07-16 22:53 ` Sean Kelley
2008-07-16 23:17 ` Nigel Magnay
2008-07-17 3:21 ` Stephen Sinclair
2008-07-18 17:02 ` Ping Yin
2008-07-16 22:24 ` Dmitry Potapov
2008-07-16 22:28 ` Johannes Schindelin
2008-07-16 22:49 ` Theodore Tso
2008-07-17 0:25 ` Johannes Schindelin
2008-07-17 2:47 ` Theodore Tso
2008-07-17 14:21 ` Craig L. Ching
2008-07-17 14:51 ` Petr Baudis
2008-07-17 15:57 ` J. Bruce Fields
2008-07-16 21:16 ` david
2008-07-16 21:59 ` Dmitry Potapov
2008-07-16 20:23 ` Stephen R. van den Berg
2008-07-16 20:27 ` Nicolas Pitre
2008-07-16 20:51 ` Junio C Hamano
2008-07-16 23:05 ` Johannes Schindelin
2008-07-16 23:40 ` Junio C Hamano
2008-07-17 0:02 ` Johannes Schindelin
2008-07-17 6:53 ` Junio C Hamano
2008-07-17 15:55 ` J. Bruce Fields
2008-07-17 16:03 ` Karl Hasselström
2008-07-17 18:16 ` Johannes Schindelin
2008-07-17 18:29 ` Junio C Hamano
2008-07-17 18:43 ` Johannes Schindelin
2008-07-17 19:10 ` Junio C Hamano
2008-07-18 14:35 ` J. Bruce Fields
2008-07-18 9:55 ` Addremove equivalent [was: Re: Considering teaching plumbing to users harmful] Michael J Gruber
2008-07-18 20:18 ` Jay Soffian
2008-07-18 23:03 ` Johannes Schindelin
2008-07-20 3:27 ` Addremove equivalent Junio C Hamano
2008-07-20 3:28 ` [PATCH 1/2] builtin-add.c: restructure the code for maintainability Junio C Hamano
2008-07-20 3:29 ` [PATCH 2/2] git-add -a: add all files Junio C Hamano
2008-07-20 3:32 ` [PATCH 3/2] git-add -a: tests Junio C Hamano
2008-07-20 4:20 ` [PATCH 2/2] git-add -a: add all files Tarmigan
2008-07-20 4:28 ` Tarmigan
2008-07-20 10:56 ` Johannes Schindelin
2008-07-20 12:45 ` Jay Soffian
2008-07-20 18:30 ` Junio C Hamano
2008-07-20 20:46 ` Lars Noschinski
2008-07-20 23:59 ` Jeff King
2008-07-21 0:06 ` Junio C Hamano
2008-07-21 0:17 ` Jeff King
2008-07-21 0:22 ` Jeff King
2008-07-21 2:11 ` Jay Soffian
2008-07-20 20:34 ` Sverre Rabbelier
2008-07-16 21:48 ` Considering teaching plumbing to users harmful Dmitry Potapov
2008-07-16 23:19 ` Johannes Schindelin
2008-07-16 22:09 ` Stephan Beyer
2008-07-16 23:22 ` Johannes Schindelin
2008-07-17 1:01 ` Stephan Beyer
2008-07-17 7:30 ` "Peter Valdemar Mørch (Lists)"
2008-07-17 12:38 ` Dmitry Potapov
2008-07-17 12:55 ` Theodore Tso
2008-07-17 13:35 ` Peter Valdemar Mørch
2008-07-17 14:26 ` Theodore Tso
2008-07-17 16:38 ` Junio C Hamano
2008-07-18 8:19 ` Andreas Ericsson [this message]
2008-07-18 18:26 ` Jeff King
2008-07-18 10:14 ` Suggestion: doc restructuring [was: Re: Considering teaching plumbing to users harmful] Michael J Gruber
2008-07-18 18:26 ` Jon Loeliger
2008-07-18 18:52 ` Craig L. Ching
2008-07-18 19:50 ` Suggestion: doc restructuring Junio C Hamano
2008-07-19 1:19 ` Suggestion: doc restructuring [was: Re: Considering teaching plumbing to users harmful] Johannes Schindelin
2008-07-20 8:14 ` Suggestion: doc restructuring Junio C Hamano
2008-07-20 11:02 ` Johannes Schindelin
2008-07-21 6:41 ` Andreas Ericsson
2008-07-21 10:04 ` Johannes Schindelin
2008-07-21 16:22 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48805207.80504@op5.se \
--to=ae@op5.se \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).