about

writing

contact

Git GUI on Mac OS X

By eric

2009-11-06

I have been using Git a lot lately and have found a lot of things I like better in Git than in Subversion. The one major item that was really bothering me was that there wasn’t really too many Git clients that could help you visualize the repository. I mean show merges, commits, branching, blame, etc. Seeing that CVS and Subversion have been around for a lot longer, there are many clients for them and now that I have been using Git for a while on the command line, I decided to take a look again.

What I am looking for is simple. I want 2 things:

In the typical Mac style, I want a great looking interface. I want to be able to see who did what, when, and why (assuming good commit messages from the developers).

Easy navigation through all the features. I am not planning on using any of the commands visually, I am still an archaic command line junkie.

One of my favorite features of git coming from Subversion is the ease of branching. I branch for everything now that I am using git. So in order to best track my changes, I was hoping for something to help me visualize my branches. I didn’t count this specifically in my desires because it wasn’t a requirement to be acceptable, but it definitely would have helped to tip the scales.
I found a three clients that I thought were worth looking at (4 if you count Gity, but I am still using Leopard and Gity is just for Snow Leopard).

First I wanted to look at Gitnub, but I couldn’t get it to run. So pass on that and move on.

Second I looked at Smartgit. Smartgit is technically not released yet (still in the alpha/beta stages), but is still a great product. It has that typical Java look and feel to it. Nothing too flashy, but has a lot of potential. I give them the benefit of the doubt since they are still in the early phases of production. Smartgit also has a much cleaner file browser/interface than any of the other UIs tested. Another clean item on the layout is tool tips. They are helpful because there are quite a few buttons which are otherwise unlabelled. There is a great button in the bottom right hand corner that maximizes the currently selected file into an automatic diff of HEAD vs. working tree. It is worth noting that Smartgit, when released will not be free software.

UPDATE: These are a few screen shots from SmartGit Beta 3. This is the current release of SmartGit.

Smartgit File Browser

SmartGit File Diff

Lastly I tried out GitX. GitX is the closest thing to what I am looking for. I would like the navigation to be a little more descriptive and the ability to see blame in a file, but it’s otherwise pretty good. GitX provides a great branch/merge view. Shows the line of the HEAD and where it came from. It’s extremely handy when you’re working with a lot of branches. The colored diffs were also very nice to look at and I have always been a fan of things are easier for me to read. These items (visualized branches and colored diffs) are a scale tipper for me.

UPDATE: These are a few screen shots from the stable version of GitX.

GitX Main Screen

GitX Main File Browser

GitX Current Changes

I guess I still have a little time to wait for a solid Git client to meet my criteria. If I could combine the cleanliness and branching look of GitX with the usability of SmartGit (with its up and coming featureset), then I would be set. If you know of a good Git clients for the Mac that I don’t know about, leave it in the comments section.