Getting Git
17 Mar 2015Not so long ago, I was learning Git for the first time. I was going through tutorials and picking it up pretty quickly. No big deal, right? I understood the basic concept of version control, and I can type simple commands. The problem is that whenever I used git outside of those tutorials and ideal situations, I got stuck because I didn't understand how it worked behind the scenes.
There are many tutorials that go through the motions of using git without telling you how to think about what's going on. On the other hand, resources that teach you how to think about git aren't nearly as prevalent as those beginner tutorials that teach you what to type. So here are three of the most useful resources that helped me level up on git beyond the very basics.
Think Like a Git
Think Like a Git is a website dedicated to that "aha" moment. Do you think there's something magical about git? There really isn't. It's just that you don't have a mental model of git yet, so everything that happens seems like magic and kind of mysterious. Reading this tutorial was enlightening and really put me on the track of being comfortable with git, even when I messed up and didn't follow a normal workflow.
Git for Ages 4 and Up
In Git for Ages 4 and Up Michael Schwern walks you through adding, committing, pushing, and a whole bunch of other git commands while playing with Tinkertoys! The visual element really makes this a wonderful resource. Unfortunately, the video isn't of the highest quality, and there are a lot of interuptions and tangents. But overall, it's really helpful.
Git Happens
Jessica Kerr @jessitron is a great speaker and in Git Happens, she not only leads us through a few more difficult commands but also helps us understand why git is hard, and why it's worth it. I loved how she talked about how git not only allows you to save your work, but also allows you to tell the story of what you did any way you like. Please note that Jessica actually prefers this version of her talk, but the one above was the one that I originally watched (and I still prefer it).
A few visualization tools
I haven't really used many of these extensively, but since we're talking about visualizing and mental models, these can come in handy:
- GitX a git GUI made for Mac OS X
- Visualizing Git Concepts with D3
- Learn Git Branching with visualization