I blog sometimes at http://oswco.com (a Django based Blog) about open source business and http://tombrander.wordpress.com mostly about tech issues. Tom has posted 8 posts at DZone. View Full User Profile

Book Review - Pragmatic Version Control Using Git

08.03.2009
| 6039 views |
  • submit to reddit
Published by: The Pragmatic Bookshelf
ISBN: 9781934356159

Reviewer Ratings

Relevance:
5

Readability:
5

Overall:
4

Buy it now

One Minute Bottom Line

With content spanning from gentle introductions to involved explanations, this book aims to please users at all levels, from just beginning to advanced. It is very well laid out, makes no assumptions, and offers great examples. Especially helpful, it has a hands-on Git repository that allows you to try out discussed concepts and commands.

Review

Git is rapidly becoming the major opensource distributed version control system (DVCS) of choice for many major projects. Competitors such as Mercurial and Bazzar (both DVCS) are important and SVN remains as a major centralized VCS. It has become quite necessary to have at least a basic understanding of each of these systems if you are active in the Open source world. Of these systems arguably the most complex is and comprehensive is git.

Git was originated by Linus Torvalds to help manage the distributed development and merge processes involved with the maintenance of the Linux kernel. It is something of a rite of passage for open source developers to become sufficiently fluent with its use.

The basic documentation on the net and even Linus's famous talk (available on you tube) got me started but I still have been feeling a bit lost.

While this book is targeted at rank beginners there is plenty here for the advanced user. It succeeds admirably in providing information for all levels of users.

As someone quite new to Git, I found this book to be very well laid out and it has a huge virtue of making no assumptions! I believe that much of the other material I attempted to learn from made big assumptions either about Version Control knowledge from other systems or just plain skipped over concepts and presented raw commands, leaving it to the reader to determine how and when to use what command.

The book gently starts out describing the general case of version control and rapidly introduces clear cogent explanations of how git differs from centralized systems. At the same time the introductory portions of the book use basic examples to introduce versions of various concepts along with the related commands.

I found myself saying often as I read, oh! that's the way it works!

I also found myself trying to understand more about some of the actual mechanics. This is where another great feature of the book came to the rescue for me. Each chapter has a Git hub repository which you can access to try out each concept or command that is being discussed. That filled in a few holes for me, specifically, for instance, what state is the working directory in and how does a command affect the working directory.

For me the book rates about a 8.5 out of 10, the only thing that might have improved it for me would have been some Tortoise Git explanation. I could also use more on setting up your own repository on various services. This criticism is unfair since Tortoise Git really only became viable after the book was put to bed and there is simply too many variables between hosting providers to cover that point adequately. The material presented is a definite help getting started with the task and I'll have the book open as I start to work on that for myself. The book also has a web site which has errata, and other comments which may prove helpful.

Published at DZone with permission of its author, Tom Brander.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)