Showing posts with label GIT. Show all posts
Showing posts with label GIT. Show all posts

01 October 2014

Aske Olsson & Rasmus Vos - Git Version Control Cookbook

If you have been or are involved in activities such as programming/software engineering then GIT is a term you have likely come across very often.

GIT is a Version Control System, it allows you to keep track of changes in things weather those things be documents or computer code.  It allows you to control how those changes are applied, it allows for changes to be carried out by multiple people, who can be in different parts of the world. 

GIT is very powerful and fast and was developed by the same group of people who now maintain and extend the Linux Kernel.  So with such a group of power coders involved in GIT's creation it should be no surprise that GIT has such power and flexibility.

However as has been often quoted "With great power comes great responsibility.".

The above is also true of GIT, it's powerful but this can mean that a lot of the functionality of GIT is hidden in a spiders web of complex command line statements, and while the fundamental basics are not too hard to grasp, once you move beyond the basics GIT very quickly becomes very complex.  Anyone who has ever had to read the GIT reference manual will have an understanding of just how complex!

This is where "Git Version Control Cookbook" comes in, it is aimed at the GIT user who already knows the basic fundamentals of how to use GIT and wants to move on to the more intermediate/advanced uses of GIT.

Product Specifications:


        The book does this by trying to clear  up a lot of the confusion surrounding GIT commands and how to use them.

        Like all of the other Cookbook series of books from Packt Publishing the recipe, solution, explanation format is used.  A problem that needs to be addressed is identified, a solution is created, then an explanation of the arrived at solution is documented.

        The range of different recipes that get explained and carried out in this book, range from reasonably simple to quite involved.  At the end of most of the recipes there are links to further information relating to most of the recipes if you want to take things further with a specific topic.  These were especially useful to me.

        There are 340 pages in the book and a lot of recipes (90), so it will not be a quick read, and given the level of information contained within some of the recipes are quite dense, it would require someone who is a little rusty with GIT to reread and experiment with the recipes to fully grasp what is being achieved.

        I am not a GIT expert so occasionally I did have to reread certain parts of the recipes and do a bit of Google searching to fully comprehend why some of the recipes worked.

        It is important to note that the book is very well written the authors have good writing styles and everything was well explained, it's just that I rarely do anything even remotely as complex as some of the tasks described in this book.  If you are a more frequent user of GIT you will likely not have some of the confusions that I did.

        Although GIT can be used as a general purpose Version Control System this book definitely has most of the recipes orientated towords tasks that a computer programmer would want to carry out, such as:
        • Configuring GIT
        • Admin Tasks
        • Branching
        • Merging
        • Patching
        • Obtaining Release Log Bug Fixes
        • Various Other Things...

        My favourite recipe was a simple one that showed you have to obtain a list of Bug Fixes for a software release using JGIT software repository.  And the other highlight for me was the coverage of how the Rebase command works.

        Rebase is one topic that always causes me a lot of confusion so I was glad of a simple explanation of exactly what it is and why you would want to use it, and a good explanation of the pitfalls of it.

        Another useful highlight for me was that the book didn't just stick to teaching how to use just GIT internal commands, it also covered how to extend GIT by using various external shell scripts, to make GIT even more flexible.

        Another thing I found useful was that most of the recipes used real repositories of software to demonstrate various GIT commands on actual real open source software.

        I think that maybe this book has two different audiences in mind.  The first is the one who has the basics of GIT under their belt and wants to expand their knowledge.  The other is the person who just wants to find a specific recipe to get a specific task done as quickly as possible.  While I think the first set of people will get more from this text than the second set, it is possible to use this book to just look up a specific recipe.

        It is always a little difficult to rate books like this because in the end how useful the book is to you depends on weather the recipes achieve things you find useful.  But since the range of topics the recipes covered were quite large and in my opinion they are the sort of tasks every GIT user would need to know, there is likely to be something in this book that you will find useful to know if you are a GIT user.  For a full list of all the topics covered in this book checkout the website (https://www.packtpub.com/application-development/git-version-control-cookbook) for the book.

        All in all this was an interesting and informative read, just remember that it is not a beginners GIT book, you will need familiarity with the basics of GIT to get the most out of this book.  For the price I really can't complain either 340 pages for just over £7 is a good deal.

        Review Score 90%

        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%

              24 January 2014

              Ravishankar Somasundaram's Git - Version Control for Everyone - Provisional Review

              Packt Publishing recently posted on G+ asking if anyone would be interested in reviewing one of their new books "GIT - Version Control For Everyone".



              I agreed as Blender recently switched to using the GIT version control system and I thought some of the more technically inclined Blenderheads would be interested in a review.

              This book is currently priced at £11.99 (Jan 24th 2014)

              This is only a partial review as the people at Packt needed it posted fairly quickly and since I am not the fastest reader in the world, I said I would do a partial review of the chapters I was able to read.

              I have so far managed to read through chapters 1 to 3.  It's not a massive book, the ebook consists of about 180 pages (trust me GIT huge so getting it down to 180 pages it an impressive feat).  So far it appears to be well written and easy to follow along with.  It takes the approach of guiding you through a series of tasks, teaching you GIT through a learn by doing approach and using common analogies to make sense of some of the more difficult concepts involved with GIT.

              Because this books is aimed at the GIT beginner is uses lots of pictures, which are very easy to see and interpret.

              From the chapters I have read it goes though all the basic steps of obtaining, installing and configuring GIT on the most common platforms available (specially Windows, Mac, Linux).  It describes the many different types of version control systems and their relative strengths and weaknesses when compared with GIT.  So it doesn't just explain how to do specific things in GIT but also the reasons why things are carried out the way they are.

              So far what I have read has been very well written and even though this books seems specifically aimed at the GIT beginning, I think the person that has a little bit of exposure to GIT would also benefit from reading this book.

              If you are not a person that likes to use Graphical User Interfaces for your GIT tasks the Command Line Interface versions are also covers.  So it appears that both type of user are supported.

              By the last part of chapter 3, the basics of adding, removing and controlling files with GIT in a project had been covered and it to me at least seemed well explained and easy to grasp (and I am by no means a GIT expert).

              When I have read the entire book I will do a full review.

              See the links below for books website:

              http://www.packtpub.com/git-version-control-for-everyone/book
              http://goo.gl/mnN6kH