Carl Worth <cworth@xxxxxxxxxx> writes: > Yes, there is a learning curve. There's the "once you grok the index" > stuff you just mentioned. And it's really backwards to have to teach > people that the "basic" way to do something is with a command line > that looks more complex, ("commit -a"), and that "once you learn more > you'll understand what that -a is all about and you'll know when not > to use it". I think you are teaching backwards. Couldn't you start like this? "git commit" takes the list of paths you want to commit. Editing hello.c and saying "git commit hello.c" would commit your changes to hello.c. It is cumbersome to list everything when your edit is all over the place, and in such a case you can say "git commit -a" to mean "everything I changed". Later you can enhance that experience by teaching them index, saying: You might want to tell git that your change to this file is more or less complete, even when you are not ready to commit the whole thing. You could use update-index to mark them and then later say "git commit" will make a commit from the state you used update-index on, without having you list them on the command line. When you do this, the commit template would list three classes of files and here are what they mean... - 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