Pragmatic Version Control Using Git
I've used several revision control systems over time: CVS, Subversion, Arch & Bazaar (both baz & bzr). Each was a real improvement over the previous application, at least as far as functionality was concerned. Documentation was the opposite story. As a direct result of their ages, each generation had less documentation.
Git is in a class of its own. Feature-wise, Git is a swiss army knife to everyone else's single blade. (CVS: A butter knife. Subversion: A steak knife. Arch: A switch blade. Bzr: An X-ACTO knife.) Whereas in the past I've had to shape my workflow around the tool, with Git I could decide on the work flow I wanted and pick the Git commands necessary to achieve it. I love that. It's the Unix way.
Unfortunately, Git was also a bear to learn. I've been using it for 5 months now and don't want to give it up, but the first couple weeks were pretty confusing. Which is why I was excited when I found out that Travis Swicegood is writing a git book for Prag. Prog.