Resources
Software
-
GitX
Development on the original version of GitX stalled out years ago. The most recent fork that I know about is the rowanj one, and that one appears to have been dormant since 2014. There are a bunch of Git GUIs available these days; GitX fits my brain and continues to work, so I keep using it. :)
-
Tig: text-mode interface for git by Jonas Fonseca
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.
-
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 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!
-
Git and GitHub Basics at SalesForce's Trailhead
Another reader suggestion, this one from Mike Arthur.
-
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.
-
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.
-
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 do 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 Used To Have To Pay For
-
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
- Reachability
- Graphs and Git
- Visualizing Your Git Repository
- References
- 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