Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at CFUNITED 2010 (Landsdown, VA) with:

Matthew McCullough And Tim Berglund On Mastering Git - O'Reilly Video Series

By Ben Nadel on
Tags: Books, Work

My experience with Source Control is fairly limited. In the past, I've used SVN; but, only in the lightest-touch-way possible. At InVision, we use Git and GitHub to manage our code. At the onset of the InVision project, in order to get more familiar with Git, I purchased the two video series - McCullough and Berglund on Mastering Git and McCullough and Berglund on Mastering Advanced Git - from O'Reilly. I watched the "mastering" series before the start of the project; and, I watched the "advanced" series after about a year of hands-on work with Git and GitHub.


 
 
 

 
 Mastering Git video series by Matthew McCullough and Tim Berglund. 
 
 
 

The format of the McCullough and Berglund video series is rather intriguing. It's like you're sitting in on a class that they are teaching; and, what makes this so useful is that the students in the class stop and ask questions all along the way. Unfortunately, I wish they had asked a few more questions. But, at least the questions they asked often helped elucidate the topic on hand.

In addition to the student-teacher-interaction, McCullough and Berglund also interact on dual terminal windows. Honestly, I thought this was a stroke of genius! All of their demos were run as if they were two members on the same distributed development team - as one person committed and pushed changes, the other person pulled, merged, and resolved conflicts. This made the git commands feel very contextual and brought the topic of git down from the philosophical and into the practical.


 
 
 

 
 Mastering Git video series terminal window usage. 
 
 
 

The dual-terminal approach in the first video series [mastering] was good; but, the approach they used in the second video series [advanced] was much better. In the first series, the two terminal windows were side-by-side. This caused the often-long lines of git output to wrap and made readability a bit challenging. In the advanced series, however, they perfected the approach using stacked windows, one above the other. Furthermore, the performance of the terminal windows, in the second series, seemed to be greatly improved, making it easier to follow along.

By the time I finished both series, and had a year of Git experience under my belt, I was starting to feel much more confident:


 
 
 

 
Ben Nadel tweets about git rebase --interactive command. 
 
 
 

... and maybe even a little cocky:


 
 
 

 
Ben Nadel tweets about a git pull --rebase command. 
 
 
 

But, this feeling of empowerment didn't happen over night. In fact, when I finished the first video series, I was so overwhelmed with new concepts that I still had to be hand-held though most of the basic interactions in a Git repository (thank you Jamie Krug!!!). It wasn't until after I had a year of experience with Git and watched the "advanced" series that I posted those tweets above.

After I finished the "advanced" series, I went back (last week) and re-watch the original "mastering" series. And, with a little experience under my belt, the "mastering" series made so much more sense. Now that I have a basic understanding of branches, the DAG (Directed Acyclic Graph), and the ref spec, re-watching the "mastering" series filled-in many conceptual gaps and helped me transcend from "memorizing formulas" to actually understanding what was going on under the hood.

If I could do it all over again, I would have:

  1. Watched the "advanced" series.
  2. Done a month of hands-on work.
  3. Re-watched the "advanced" series.
  4. Done another month of hands-on work.
  5. Watched the "mastering" series.

I think if I had followed this game plan, I would currently have a much stronger understanding of Git; and, I think I would have been far more productive this last year (in terms of Git). That said, it's definitely a strong product and one that has truly helped me wrap my head around a rather complex and hairy topic.



Reader Comments

Agreed Ben, these videos are really instructive.

I bought the first one when it first came out. I didn't know there was a second one till you blogged about it today. So I just purchased it. Thanks for the heads up.

Reply to this Comment

@Orville,

It definitely has a learning curve, not the least of which is the command-line nature of it. That said, there are a number of User Interfaces that I've seen people use that make navigating around Git's features a bit more natural to the end user. While, I've not tried this myself, I hear good things about:

GitX - http://gitx.frim.nl/
Github For Mac - http://mac.github.com/

While the name of the last one implies that it works only with GitHub, I have seen people use it with any service that hosts git repositories.

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.