I like screencasts. A well-made screencast can explain complex concepts more effectively than a written document. Watching a screencast about a topic you're trying to learn is like having a friendly expert by your side, showing you what you need to know. Recently, I stumbled upon PeepCode's screencast about Git.
Buzz about the Git version control system is growing. Most famously, Git is used to manage the Linux kernel project, but Git is also growing in popularity as the preferred tool for managing all sorts of projects, ranging from software source code to websites to wikis and beyond. The Git website itself, for example, is managed with Git. And a git-backed ikiwiki can even function as a lightweight bug tracking system.
If you want to learn Git, you will find this screencast helpful and informative. It's best for people who are new to Git but have Unix experience and a working knowledge of version control concepts such as branching and merging. Personally, by the time I was done watching it, I had picked up quite a few handy Git tips I could use right away.
Junio Hamano, Git's maintainer, served as technical editor on the screencast, so you can rest assured the information is accurate.
The video's example project is in Ruby on Mac OS X using the TextMate editor, so if you're a Rubyist on Mac OS X who prefers TextMate, you'll feel right at home. Naturally, though, the examples are easily generalized to any content in any editor on any flavor of Unix or Unix-like operating systems including, of course, Linux. Someone working in Perl on Slackware with vi will find it just as easy to follow along.
The screencast's author and narrator, Geoffrey Grosenbach, guides the viewer through a series of topics, beginning with a brief history of Git and why it's useful: it can be used offline (think: on a laptop while flying in a plane at 30,000 feet), it can be used with distributed or centralized projects, it supports easy branching, and it's "clean" in the sense that there's a single .git directory in the root of the project rather than multiple dot directories scattered throughout the project tree.