While this material is good, I think it could be made even better by a restructuring. There are two audiences which I think aren't served well (everything in this issue, I have said before but I don't think is written anywhere):
- Those who already have sort of used git (we start with stuff they already know, git init, git add, and so on)
- Those who know nothing about version control. Very soon, they go off to git init, git add, and so on and probably don't have a big picture.
I've given some git intros to academic courses, and the usual problem is some people know a lot already, and can easily teach others if others became interested.
Once I tried to write a better plan, where the why and social design are front-loaded, and then the "how" is later. It went something like:
- Why code becomes a disaster without (lots of examples here, throw in some of the famous comics about it)
- Use github web interface to see an existing project: explore the history, see contributors. Give some exercises like "this line has a bug: who did it and when?", "how many contributors", "find version on this date".
- Ideally, use browser to make a commit on existing project, maybe even a merge request (it's easy in browser, and shows cool stuff). So, bring in some of the "git in the browser" stuff, but less structured, just to show people nice things.
- Ideally something from git branch design. Now the details, but there are good stories there and when I saw this, it felt like good motivation finally came.
- Then switch to "git init" and so on...
All the intro parts is relatively non-technical so could be done in an hour maybe. I'm sure it would save at least an hour later.
Additional ideas:
- have people contribute to existing project first. I guess this is a fairly common case and many people probably would start here first anyway (just for the web browser part)
If not used here, I would adapt these to either git-in-the-browser or some "git for normal people" type talk.