26 January 2014

Ravishankar Somasundaram - Git Version Control For Everyone - Ebook review

I was recently contacted by Packt Publishing and asked if I would do a prelimary review of one of their books "Git Version Control For Everyone";  I agreed and did the preliminary review and what I had read so far seemed well written.

Now I have finished reading the complete ebook so now it is time to do a full review.

For those that are unaware of what GIT is, in simple terms it is a piece of software that allows you to store and keep track of many different versions of things from documents to source code.  It allows you to collaborate with people in teams managing their changes and additions to content they create.

It's a reasonably modern version/content control system, it has many advantages over older control systems like SVN.  As a result it has become a very popular method of implementing version control especially on software projects.

If there is one big limitation with GIT, it is that the official documentation that comes with it, although it is very complete, it is not, to put it mildly, the easiest documentation to understand and interpret.  Even the simplest and easy to use GIT commands when explained in the official documentation seem to be the most complex and labyrinthine command ever invented.

This limitation of GIT official documentation has resulted in many books on GIT that seek to make it easier to understand and use for normal people (see non-coding geeks).

Product Specifications:

        This book by Ravishankar Somasundaram seeks to help the person that is completely new to the topics of version control and GIT in particular.  It's aimed at beginner and takes the approach of using examples and analogy to explain the important tools and concepts that GIT uses to get it's version control tasks carried out.
        The book starts explaining what GIT is and it's history, as well as its advantages when compared to other version control systems.  All done in an easy, non-technical way of explanation.  Although it doesn't go into great detail it's a nice primer on the reasons for GIT.

        After the history lesson, obtaining and installing the GIT software for various platforms (Windows, Linux and Mac) is gone over.  The instruction seemed clear and easy to follow and there were many very clear pictures to see, all in full color in the ebook I read.

        Once installation of GIT has been covered the book moves on to doing basic configuration tasks with GIT, showing how configuring works in GIT allowing you to explore other configuration options when you want to.

        From this point on the book introduces some of the most fundamental GIT commands, explaining how they work by using the approach of asking you to carry out various GIT version control activities by creating and managing various documents and placing them under GIT's control.

        On the whole this method of do something then explaining what it is you just did, is a clear and easy to understand method of teaching use of GIT;  In parts I thought certain topics would have benefited from more explanation but this is a beginners book and so some deeper explanations of certain topics may have been to complex for a book like this.

        One very useful thing the book does is to teach 2 different ways of interacting with GIT, those ways being either using a Graphical User Interface or by using a Command Line Interface.  Teaching both approaches will benefit the users who like one way of interacting with GIT over the other.

        The book basically has 7 chapters each of which covers the various most fundamental commands and feature that GIT has.

        There is one final chapter 8 that is very strange for a beginners book,  it tries to explain some of the more advanced internal features of GIT that make all of GIT work.  This chapter seem completely out of place.  There are basically two reason for this, 1st in a book aimed at a beginner the information it gives will probably just be seem like techno-babble & 2nd it's incomplete so if you genuinely wanting to know all the under the hood stuff, it doesn't give enough information to be really useful to an advanced user.  So it doesn't help the beginner or the advanced user.

        So all in all if you are a beginner who has never use version control before or has never used GIT before, this book has the fundamentals covered;  You will be able to use GIT to get things done after reading this book, just skip chapter 8.

        Not the best book in the world and it won't make you a GIT expert but it will give you enough information to get going in GIT fast.

        Review Score 70%