Deconstructing a Git Branch — The Tools…Seriously? (Part 3 of 5)

September 18, 2012 Jack Repenning

As I confessed last time around, I mismanaged some Git-branch evolution and had to reconstruct what the branch would have looked like, if I wasn’t an idiot. I tried to fix things up with the Git command-line, which I’m sure can be done … but I sure couldn’t find all the pieces to do the job.

So I turned to GUI tools, hoping for extra insight. After all, Git has GUI tools, right? I read that somewhere, recently.

What I found was that many of the Git GUI tools are designed to provide GUI assistance to the basic, common operations. That’s not a bad thing, but not really what I was looking for. I did some research, but eliminated most offerings (for my purposes) rather quickly. I’ll talk a little about those, anyway, in case you’re in the market for “easy-to-use git-basics,” but will focus on the search for a tool so clever it can even clean up my messes.

As I do, and more so once I roll up my sleeves and get down to work, I’ll be working with some sample data I ginned up for illustration. If you’re curious, you can download the repo and play along. Here’s the repository. And here’s its GPG signature.

Git GUI tools



First out of the gate is gitk. This is the most often-mentioned, most developed of the stable. It comes with git itself, so   you  probably already have it. It should be available on whatever git-enabled platform you have. Unfortunately, though it’s very powerful, it’s also quite overwhelming: there’s a lot of power here, but more investment in making it available than making it accessible. I need some power, but I also need some guidance. Let’s set this one aside, and see what else we can find.


Next up is git-gui, which also comes with Git, and is probably already installed on your system (type git gui and see). This is a bit more presentable, and provides a bit of guidance, too. For example, it was this GUI that first suggested to me that “Sign Off” was important enough to live among the “basic, main-line operations.” But right there is the problem: this is one of those GUIs intended to provide a GUI wrapper around the basic, common operations. Not a bad implementation of that, but not the problem I need solved. Moving on.


This is Windows-only, which kills it for me, but if you’re a Windows type, you might want to check it out. It also requires the msysgit version of git itself.



Katana is a Mac-only tool (which is fine with me). Katana provides several ways to browse several ways (files, branches, stagedness). But it only provides the basic operations.

Sprout. Sprout is a Mac only pay-ware. It has a better browser than any of the above, and a good Mac look-and-feel. Somewhat more than just “basic” operations, but still no help for me.


Linux only (experimentally Windows). No help for a Macophile like me.


Linux only.


So the only one of these that offers me any hope of help is gitk, the scary one. Click below to follow my 5 part series.

Part 1: Deconstructing a Git Branch

Part 2: Deconstructing a Git Branch — Tools Fail

Part 3: Deconstructing a Git Branch — The Tools…Seriously

Part 4: Deconstructing a Git Branch — A Guided Tour

Part 5: Deconstructing a Git Branch — Rolling Up Our Sleeves, Battling the Beast

Previous Article
Continuous Delivery in Action: Interactive Knowledge Center
Continuous Delivery in Action: Interactive Knowledge Center

Welcome to the Interactive Knowledge Center: home to everything Continuous Delivery! You’ve heard about Con...

Next Article
Continuous Delivery in Action
Continuous Delivery in Action

Welcome to the Interactive Knowledge Center: home to everything Continuous Delivery! You’ve heard about ...