Version Control with Git Book Review
I had the pleasure of picking up Version Control with Git 2nd Edition as part of the O'Reilly Blogger Review Program. The book showed up at the perfect time as I wanted to start using GitHub and Git for version control after years of using Subversion and Mercurial. There are no technical reason for switching to Git. I just like to learn new technology and tools as well as am a little envious of the social aspects that many of my peers are enjoying on GitHub. I signed up for a GitHub account and have been learning its features over the past few weeks and have been learning some of the ins-and-outs of Git via the 2nd Edition of Version Control with Git.
Lots of Detail on Git
I am delighted at the amount of detail on Git in the book. The book is not something you read from front-to-back if you are new to Git. I already had Git installed so I immediately just dived into the Basic Git Concepts and then bounced around the various chapters of the book on Commits, Branches, Remote Repositories, and Repository Management. I found it pretty easy to pick out those pieces of Git I needed to know immediately to be productive, saving the more detailed information for a later time when I get stuck or want to know more.
If you have used Mercurial, you will feel right at home with Git. Commands are different, but the concepts are similar. I am sure there are lots of difference between the two, but again, I stuck with the basic Git concepts and commands for my first tour through the book and will save the more complicated aspects for a later time. You'll easily learn how to create repositories, manage repositories, commit, merge changes, and perform all the other daily activities in using Git for version control.
If you really want to dive deeper into Git and learn some of the more advanced and less-used commands, I think Version Control with Git has you covered. The book starts off each chapter with a topic at a nice high level for beginners and continues to peel the layers on Git if you really want to know how it works at its core. I stopped reading each chapter around somewhere in the middle since that was just about all I wanted to know for now until I had more real-world experience with it.
Git Examples in Linux
I develop on both a MacBook and Windows PC so I feel pretty comfortable with the Linux examples in the book. Looks like OS X to me :) If you only know Windows, you shouldn't have a problem following the examples. The Git commands are the same and only the environment and OS commands are a bit different. It is easy to know which is which!
The only thing I didn't find mentioned in the book was GitHub for Windows, which allows you to easily install Git on your PC. If you are completely new to Git, I highly recommend you use it to install Git as opposed to using the Cygwin Git Package or msysgit mentioned in the book. GitHub for Windows seems a lot easier to me and is what I used to install Git on Windows 7!
In Chapter 21 the authors skimmed some of the features and social coding aspects of GitHub. They did a good job, but I would have liked to get a bit more detail on how to use the features. I suspect most Git developers are on GitHub, so covering the feature of GitHib in more detail would have been very helpful. That being said, they did a nice job highlighting watchers, news feeds, forks, notifications, wikis, GitHub Pages, etc. I am just diving into those features on GitHub during the evenings and love the capabilities.
Being a Git newbie, but very familiar with other version control systems like Mercurial and Subversion, I can highly recommend Version Control with Git to those new to Git. Each chapter dives into a topic, giving you what you need to be productive and then dives deeper and deeper into more advanced commands and concepts. Most beginners will learn the basic concepts on their first pass of the book and later use it as a solid reference book to answer a question or solve a problem. For those looking to use GitHub, the overview of GitHub will get you started on those features particular to GitHub as a social coding platform.
Learn more about Version Control with Git on the O'Reilly Website.