Getting Git Thanks to PeepCode
It's pretty clear that Git has landed. More and more projects are migrating to Git for their version control needs and developers have another system we need to get up to speed on.
I'm usually a traditional dead-tree book learner, but this time I decided to try the PeepCode approach. I had heard good things about them and I can now tell you that reputation is well deserved.
PeepCode has two resources available for those wanting to learn more about Git. First, there is a one hour screencast called Git covering everything from installing through basic usage. There's also a newer 120 page PDF book called Git Internals, that ships with some different screencast material. You can purchase either product for $9, which really is a steal in my opinion. Both are well done, but let me break down their strengths for you below.
The original screencast is a great resource for the developer who wants to get up to speed on Git in a hurry. You just watch for an hour, perhaps try a few examples as you go, and you should come out the other side with basic Git usage skills. An added bonus is that the screencast covers Git's Subversion integration which is a topic you don't want to miss, but it's sadly missing in the PDF book. It also has some good tips on configuring the gitk browser under Mac OS X.
The downside of the screencast is that it will probably leave you thinking Git is just an alternative implementation of Subversion if you don't know any better. It did for me. Unfortunately, that's pretty far from the truth and understanding that is really the key to Git enlightenment. That's where the PDF book comes in.
The Git Internals PDF begins with a lengthy explanation of how Git is really nothing like Subversion. You could be forgiven for thinking this is a pretty big waste of space for developers who would prefer to get right too using Git, at least until you read the first few pages. This section is easily the reason to get the book as it will make you really understand why we should all be learning Git as well as helping you understand why the Git commands work a little differently than other version control systems you may be use to. This section is pure gold and it's importance cannot be overstated.
Beyond that, the book includes at least as much basic usage as the screencast and more in depth coverage of several topics. In addition, the PDF books ships with over an hour of screencast coverage mirroring the usage examples in the book. (These same screencasts are now also available freely as the first nine episodes of the author's GitCasts series, but you'll get them in higher quality with the book.) This slightly exceeds the content of the original screencast, so you get more bang for your buck here. I found that watching a screencast and then reading the prose coverage made a nice one-two punch that helped me to absorb what I was learning. The book also has a little coverage of GitHub, which is a wonderful resource for Git users. It will take you a few more hours to get through the book and its screencasts, but it's time well spent that should pay you back during day to day Git usage.
Since this was my first Peepcode experience, I had no idea what to expect in terms of quality. I can now tell you that it's pretty top notch. The screencasts are large, high quality movies. They have a great table of contents so you can jump right to a section you want to reference with the flick of a popup menu. The PDF book was also well produced and sized perfectly for onscreen reading. My eyes really appreciated that.
Both the screencasts and the book have some minor formatting issues. The screencast presenters clear the screen frequently as they go, which is generally a plus as you don't have hunt through a terminal full of content to find a new topic. It does require you to be quick with that spacebar to pause the movie though, if you would like a chance to follow along by feeding the command into your own terminal. In a couple of cases (configuration settings stick out in my mind), the descriptions seemed to continue on after the screen had been cleared, so I didn't know I wanted to copy the command in time to save myself some rewinding.
The book's main issue is that wrapping can be a little abrupt. The only place this really becomes a nuisance is with shell commands which are sometimes split over multiple lines with no visual indication that the content continues from the previous line. Again, these are minor and infrequent annoyances that don't drag down the overall experience too much.
It's hard to pick a favorite between these two great ways to learn some Git, but the explanation of how Git works in Git Internals is the must-read that tips the scales, in my opinion. If you can spare the extra time, go for the book. Don't forget to look into the Subversion integration built into Git though, as it's one of the great topics the book doesn't include. Or you can just grab both the screencast and the book for cheaper than most other technical manuals on your shelf.