Git Down: A Recommendation of Swicegood's Pragmatic Version Control Using Git


As many of you may know I’ve been writing a lot. I mean a lot lately. One of the great things about being a humanities guy who knows high tech is that you know better ways than “email my gmail account a backup copy of this document that’s leeching my soul” to handle version control.

I used subversion.

A few weeks into my first project I became really aware of git, Linus Torvalds’ distributed version control system. My friends, the times that “getting interested in a new technology” has turned my KISS project into a monumental yak-shave is beyond count, so I resisted git. I even complained of people hassling me to shave that Yak.

Like Stimpy, people kept taunting me with the red, jolly, candy-like button of git.

History Eraser Button (Ren and Stimpy) - Free videos are just a click away

In the middle of this, I found the PDF version of Travis Swicegood’s Pragmatic Version Control Using Git. I decided that instead of a massive yak-shave, trying to piece together bits of web wisdom and screencasts, I would go a chapter a day on Travis’ book.

So, each day I scribbled notes from a chapter in my Moleskine:

Git Moleskine

Until I finished. Well, I’ll be humdingered if Travis’ book didn’t teach me git. I have to admit I was really scared by commands named “rebase” and flags like “–hard” (sounds permanent, you know?). Travis really focuses on the important parts of git:

  1. Git is a distributed version control. This means you have the entire history versus the latest instance, like in Subversion
  2. Git loves branches. Branches are great because they let you try things, foo-up fast, and then move on
  3. When a branch becomes mas macho, you may want to move it into the base. Instead of merging all those changes in, move in the finished product, that’s rebase.
  4. Merging, by the way is like a staggered rebase
  5. Remotes are like virtual branches, you can merge them into your local stuff.

There’s some subtleties around this, but walking out with these understandings, the basics of branch, commit, and clone really got me plenty far. I even set up a github project for Latin + LaTeX + Textmate utilities.

Travis also uses github to give you your “work at home” directories. That means if a chapter feels familiar to you, you can skim it until you feel like you want to work along. When you wish to do that, simply check out the code for that chapter and follow along. I like that the book is flexible and allows you to map your level of expertise in.

Personally, I didn’t miss the paper version (mostly because i make notes anyway) so having the PDF was sufficient. It’s definitely a good book at a reasonable price.