On 10/19/07, Federico Mena Quintero <federico@xxxxxxxxxx> wrote: > "Make git more task-oriented rather than data-model-oriented" is about > making the tool adapt to what you usually want to do, instead of making > *you* adapt to the way the tool wants to work. Many commands in Git > have documentation like > > "option --foo updates the refs without modifying the index. Requires > a clean working tree" > > This is gibberish for people who are not very familiar with Git's > internals. "Git for computer scientists" provides a *very nice* > explanation of the DAG and refs and tags, but unfortunately it doesn't > explain the index, why you would want to know about it, etc. That is what "Git User's Manual" (and tutorials) is for. And there is glossary in documentation. [...] > It's nice that Git lets you manipulate the repository in all kinds of > ways, but presenting porcelains at the same level as plumbing makes > things hard for users to learn. I was just in our Beijing office, > teaching people about development tools and Git in particular. > > Federico: "get Git from this location" > > Beijing hacker: tap tap tap, "okay, it's installed now" > > Federico "Git commands all start with 'git'" > > Beijing hacker: git<Tab> > > Bash: Display all 150 possibilities? > > Beijing hacker: "oh, shit..." It is better to use bash (or zsh) completion, than rely on completion of commands names. Beijing hacker: git <Tab> (that is, space after 'git') shows around 62 commands. > It's hard to know where to begin :) Do I need "git-cherry-pick" or > "git-cherry"? Why is the "apply a patch" command called "git-am"? Why > is it different from "git-apply"? From "git-applypatch"? Etc. I think git-cherry will soon be obsoleted and removed, such like git-applymbox and it companion git-applypatch are being obsoleted by git-am. git-am applies series of patches _with description_ from messagebox, creating commits if patch applies without conflicts. It requires git extended patch for sensible operation; it is best when patch is result of git-format-patch. git-apply is to apply GNU patch (optionally git patch) to working area, or working area and index, but do not create a commit. It is improved version of GNU patch utility (it understands git extended diff syntax), but it is not meant (alone) to work with commits send by email. -- Jakub Narebski - 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