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

Posted March 18, 2013 at 9:58 AM by Ben Nadel

Tags: Work, Books

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

Mar 18, 2013 at 11:23 AM // reply »
16 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.


Mar 18, 2013 at 12:59 PM // reply »
11,238 Comments

@Tim,

No problem, my pleasure! And, thanks for the Git help you've given me as well :)


Mar 21, 2013 at 1:30 PM // reply »
29 Comments

Rock on!


Apr 2, 2013 at 1:15 PM // reply »
4 Comments

Git sounds intimidating.


Apr 2, 2013 at 4:51 PM // reply »
11,238 Comments

@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.


Post A Comment

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.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 17, 2013 at 7:42 PM
HashKeyCopier - An AngularJS Utility Class For Merging Cached And Live Data
Ben - thanks so much for posting these Angular articles and findings, they've been a huge help towards learning one of the more 'complex' JavaScript frameworks out there (IMO). I have been using Angu ... read »
May 16, 2013 at 5:01 PM
UPDATE: Parsing CSV Data Files In ColdFusion With csvToArray()
Your code was the closest thing I've found to obtaining some direction for converting ISO fields to values that CF can translate properly. Thank you for posting! ... read »
May 15, 2013 at 10:37 PM
Very Simple Pusher And ColdFusion Powered Chat
hi id making plz easy ... read »
May 15, 2013 at 6:07 PM
Making SOAP Web Service Requests With ColdFusion And CFHTTP
Ben, you once again saved my bacon at work. Thank you, thank you, thank you! ... read »
May 15, 2013 at 4:15 PM
What If All User Interface (UI) Data Came In Reports?
@Josh, Thanks! @Ben, I definitely recommend the David West book "Object Thinking" I've been quoting from. It goes deeply into the philosophy and history of OO programming. His breadth ... read »
May 15, 2013 at 11:36 AM
Ask Ben: Print Part Of A Web Page With jQuery
I found this helpfull when you need to keep (refresh) the original parent page after closing the iframe child print dialog (Hoping you're not using a form at this time so it won't submit again): On ... read »
May 14, 2013 at 7:13 PM
What If All User Interface (UI) Data Came In Reports?
@Jonah, If there's any books you'd recommend on the subject of domain modelling, I'd love to hear it. I just downloaded the free PDF of "Domain Driven Design Quickly". Figured I'd give it ... read »
May 14, 2013 at 6:57 PM
The UX Of Prototyping: Low-Fidelity Is The New High-Fidelity
@Phillip, I'm not sure I follow what you mean? Are you saying that you looked at the list of widgets provided by the jQuery UI and let that be your style guide? ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools