GitX (original version)
Development of this stalled out at 0.7.1, and the README now points at the GitX (L) fork, linked below. I still use this one because it's super fast, and I'm comfortable doing branch manipulation on the command line.
This fork has added some nice features. However, it appears to be considerably slower when accessing a repo with several years of commits, so I'm sticking with the original project for now. (I've heard good things about the brotherbard fork, but development on that also appears to have stalled.) Thanks to @hugocf for directing me to this fork.
Tig: text-mode interface for git by Jonas Fonseca
Also suggested by Mark Scholtz, this is a text-mode UI that gives you pretty (but still text-based) views of many of the same things that GitX does. I personally don't have a lot of use for this, but for those of you who really really love your CLI (or your screen readers!), this might fit your working style a bit better.
Free Stuff About Git
The Git Parable, 2009 blog post by Tom Preston-Werner
Explains why you might want to use Git, and why it has some of the features it has. At end, provides links to a few other resources that may be useful.
Subversion Re-Education page on a Mercurial tutorial site by Joel Spolsky
Mercurial is a different distributed version control system, but this one page is incredibly useful if you're coming to Git from Subversion or another centralized system.
The Thing About Git 2008 blog post by Ryan Tomayko
One of the best pieces I've ever read about Git. Explains a lot, especially what the index is.
Git is Simpler Than You Think, 2011 blog post by Nick Farina
Chatty blog post with lots of entertaining pictures. You'll hardly notice you're learning stuff.
Git for Ages 4 and Up 2010 Flash video by Michael Schwern
If you've got 45 minutes to spare, this is a great talk. Schwern engages your kinesthetic and spatial reasoning faculties to help you understand what Git is doing.
The Illustrated Guide to Recovering Lost Commits With Git, 2008 blog post by Mathieu Martin
Sometimes the best way to learn how to fix something is to break it on purpose. Arlo Belshee once told me that when he joins a new team, he likes to force them into a failure mode as quickly as he can, just so he can build trust in their collective ability to recover from it. In that spirit, Mathieu walks you through "losing" work in Git, and then shows you how to get it back again. Great stuff.
Git Immersion by EdgeCase Consulting
This one was suggested by reader Mark Scholtz. I haven't gone through it myself, but at first glance this looks like an amazingly detailed, well supported step-by-step tutorial that starts from the very basics and goes on through some very advanced topics. Thanks, Mark!
Pro Git, occasional blog and 2009 book by Scott Chacon
I have to admit that I haven't actually read this one—it was suggested by Jason Seifer. Looks like an interesting blog, and as I've said elsewhere on the site, Scott Chacon's knowledge of Git is... impressive. (Note: free blog promoting for-pay book, so I'm listing it in the free section.)
Production Release Workflow With Git, a blog post by John Wilger
In January 2011, my manager wrote up this description of the rebase-oriented workflow we'd been using on our team for (then) several months. We've since discovered some subtle problems with this approach and are moving toward a continuous delivery setup. While I might not recommend this workflow now, it's an interesting example of how rewrites to shared history (generally considered extremely disruptive) can work quite well as long as the entire team expects them and has the skills to cope with issues when they arise (which is not as often as you might think).
Stuff About Git You Should Pay For
Peepcode screencast on Git ($12)
I found this helpful when I was completely new to Git. Haven't revisited it in a few years.
Git Internals PDF by Scott Chacon (also $12 via Peepcode)
More detail than you could ever possibly want on how Git works. I've read maybe half of it. It's incredible.
Graph Theory Awesomeness
"Algorithm" is not a !@%#$@ 4-Letter Word, RubyConf 2011 slides by Jamis Buck
Won't teach you a thing about Git—or will it? Either way, if you're not 5 IQ points smarter by the end, I'll personally refund your purchase price.
- About This Site
- Git Makes More Sense When You Understand X
- Example 1: Kent Beck
- Example 2: Git for Ages 4 and Up
- Example 3: Homeomorphic Endofunctors
- Example 4: LSD and Chainsaws
- The Internet Talks Back!
- Graph Theory
- Seven Bridges of Königsberg
- Places To Go, and Ways to Get There
- Nodes and Edges
- Attaching Labels to Nodes
- Attaching Labels to Edges
- Directed Versus Undirected Graphs
- Graphs and Git
- Visualizing Your Git Repository
- The Reference Reference
- Making Sense of the Display
- Garbage Collection
- Experimenting With Git
- References Make Commits Reachable
- My Humble Beginnings
- Branches as Savepoints
- Use Your Targeting Computer, Luke
- Testing Out Merges
- Rebase From the Ground Up
- Cherry-Picking Explained
- Using 'git cherry-pick' to Simulate 'git rebase'
- A Helpful Mnemonic for 'git rebase' Arguments
- The End