A few weeks ago I helped out with a git workshop at the Omaha Dynamic Languages User Group.
The format was a “hands on lab” where people installed git on their local machines and ran through a series of canned scenarios to introduce them to the various git commands.
Jay Hannah said a few members had suggested the lab format, and I think it went really well.
I have a tendency to try and explain things from the high/theoretical level, but sometimes it’s better to just ignore that and simply use a tool or practice for awhile. Then after you have some experience and context to work from, the high/theoretical level is much easier to grasp.