Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Pragmatic Guide to Git Book Review

October 29, 2010

With the release of Pragmatic Guide to Git, Pragmatic Bookshelf has launched a new line of books designed to transfer reference information as quickly as possible from the author to the reader. Does this 'just the facts' approach work? Read on to find out.

Written by Travis Swicegood, author of the nearly two-year old Pragmatic Version Control Using Git, Pragmatic Guide to Git is akin to a 'Nutshell' second edition of sorts. As the initial member of the Pragmatic Guide series, the book follows a structured per task format of description, command reference and related references. This 'cut to the chase' style will likely appeal to agile developers who are already trained in refining the essence of a task into a structured, rudimentary definition. This new book series also minimizes the static-to-noise ratio by focusing on describing answers without unnecessary pages of back explanation. The task-oriented two-page spread approach reminds me of a similar layout used by Mike Murach and Associates, of which I'm a big fan. However, this design aesthetic is most effective in the printed or PDF versions of the book, since the concept of an absolute page in the world of reflowing Epub or Mobi formats is non-existent.

The book consists of 44 tasks categorized into 8 sections. For example, the 4 tasks in the Getting Started section help those new to Git get the distributed version control system installed, configured and set up with a new or copy of an existing repository. Committing and sharing changes as well as moving and deleting files in Git is covered in the next section. Branches and Tags shows how to create, switch, view, merge and delete branches and tag milestone. This is followed by working with a remote repository (adding, removing, retrieving and submitting changes). Due to the importance and the depth of understanding needed when working with branches and tags, the concepts are expanded in the section entitled Branches and Merging Revisited that covers such tasks as conflict resolution, cherry-picking commits and moving branches. The next two sections show how to work with a repository's history (viewing and filtering logs, generating change statistics, etc.) and fixing commits via reverting, resetting or erasing commits. The last section is a collection of 4 miscellaneous tasks that cover repository export, Git housekeeping, using git-svn to sync with existing Subversion repositories, and concluding with setting up a bare repository such as those created by services like GitHub and Gitorious.

Having already written a more comprehensive book on Git, the author had a volume of content to harvest for the guide. Considering the challenges of distilling the essential elements without abstracting too much of the understanding for why things work in Git the way they do, Travis has done a good job with re-configuring his knowledge into this new Pragmatic format.

Some potential readers may be put off by the book's page count to cover price ratio. But after considering the time cost of the 'free' alternative (spending time querying Google for a mishmash of results while trying to avoid link bait), the asking price is rather reasonable.

Incidentally, for those who prefer learning via video instruction, the Gitcast screencast series is an excellent way to see most of the book's topics in action, and will help reinforce the quick explanations that Travis has written for each task.

Title: Pragmatic Guide to Git
Author: Travis Swicegood
Publisher: Pragmatic Bookshelf ISBN: 978-1-93435-672-2
Pages: 168
Price: $25

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.