SmartGit - The Best Git Gui So Far

Posted: February 24, 2010 In

As Git becomes more popular and widely used a GUI becomes even more important. This was especially important when Drupal recently looked at what version control system it was going to switch to. (If you're interested in the Drupal (unofficial) decision checkout Angie Byrons post on groups.drupal.org)

When I surveyed the Git GUI landscape SmartGit stood above the rest for your standard user.

SmartGit

For Your Average User

Git is an extremely powerful program. Powerful enough that there is a manual called Git for Computer Scientists which dives in really deep. There are advanced features within Git that I can't imagine how to build a GUI for.

That being said, the common features that most of us use can be easily encapsulated in a GUI and SmartGit does just that. For a typical user, including front end developers, weekend warriors, and anyone who just doesn't need the advanced abilities, you have access to it with SmartGit.

And, since it was written in Java it runs on Macs, Windows, and Linux.

GitHub Integration

The most popular site for public Git repos is Github. The interface is slick, the documentation is easy to understand, and it just works. This is where projects like jQuery and TinyMCE are hosted.

SmartGit provides integration with Github.

SmartGit

If you've provided your Github login information into SmartGit clicking on "Select from Github..." will bring up the list of projects you have on Github and let you clone them to your local system to work on them.

Paying For Commercial Use

SmartGit is not an open source project and it is not free for anyone to use. It's free for non-commercial use but, for commercial use you need to pay for a license.

If you want a GUI for commercial use but are looking to only use Open Source or free software there are alternatives. For your average user none of them is as nice.

I've had the chance to use several Git GUIs. Many of them are great at what they do but are not right for your typical user. SmartGit hits that sweet spot.

Reader Comments

Did you also try TortoiseGit ?

Due to its integration into Windows Explorer (like TortoiseSVN and TortoiseCVS), it is easy to work with it. Also, it's fully open source, and TortoiseGit's maintainer timely reacts on bug reports - as well as donations ;)

TortuiseGit is great if your on Windows. But, most of the Drupal core devs are on macs. That's why I posted about SmartGit.

I'll follow-up this post with alternatives.

Since you're on a mac I'd recommend looking at GitX (http://gitx.frim.nl). A very nice native OSX ui with all the Git features I've needed so far.

I have used gitx and for some things it's great. But, a good GUI for your average user provides all the functionality they need to never use the command line. gitx doesn't have all those features. It is too limited for me to give to someone who isn't used to the command line.

GitX doesn't have all those features yet. But it's coming along nicely and due to the fact it's a native OS X app it looks better, integrates better and is more slick than any java app will ever be.

Give GitX another few months and then lets see how they compare.

When GitX has all those abilities I'll be glad to share it with everyone. Until then there are certain users who need more in a GUI.

I don't get the command line aversion. Command line tools aren't antiquated, they're powerful.

I'm always bewildered by attempts to take a really powerful tool and layer an interface on top of it that removes 90% of that tool's power. I could understand if the end user were anyone but a developer. But we're not talking about a spreadsheet, we're talking about an SCM. I will concede that a log viewer like GitX makes sense to me because it's a nice, large area to view code and commits. But for interactive commands like those Git GUI provides I can't see the benefits. I especially loathe tools like Tortoise which not only obscure features but *rename* them adding to the confusion when newbies who haven't bothered to learn their tools ask those of us who took the time for help.

You are obviously not the target audience. I am not either.

But, after working with people in the GUI target audience for several years I understand their need. A lot of SCM users only use basic features. Many users of an SCM don't need to use 90% of what it does. They need the basics. The everyday tasks.

And, on the developer note, I know software engineers who want to use a GUI for everyday tasks. Those who are perfectly capable of using the command line who just don't want to. It's a choice.

When it comes to Drupal I think of the themers and weekend warriors. For many of them they need a GUI. Even if it is the gateway to the command line. No GUI means we turn many of them away before they get a chance to do something great. Angie Byron, the Drupal 7 co-maintainer, started out as a SCM GUI user and look where she is now.

As a developer I find a GUI based SCM interface increases my productivity greatly. I have far more important things to focus my time and concentration on than internal workings of SCM. I mostly use Perforce and I never use the commandline in my day to day activities. There is no need for me to know and understand the internal workings or try to remember a bunch of commands. Saying developers *should* have a more complex interface is ridiculous.

With regard to renaming commands, I think it's great to have a unified naming convention. I used tortoiseSVN for one project moving to tortoiseHG and then tortoiseGIT for my most recent project, was really easy. Having said that I don't think tortoiseGIT is adequate since I did spend a lot of time on the command line as well.

I've seen some good reviews for GitCola, I just downloaded it to try it out myself.

can't work with "git://" servers, this is the most common way to get git repositories...

Not true. I tested it on multiple servers using git:// based paths. Worked like a charm.