Git GUIs

This octopus is, puzzlingly, missing its mouth

Git is remarkable for how smooth, fast, and tiny it is as a command-line application. Because of some as-yet unarticulated conservation law, this means that all the GUIs for it are clunky, slow, and bloated. To go from the magically simple experience of git to one with better visualisation and more discoverable UX, you must sacrifice time and disk space upon the altar of thread locks and bloat.

git gui

⭐️⭐️⭐️⭐️ Fast, simple, built-in, underdocumented, effective, unsightly.

The hatchetface git gui invokes a git gui which is free, simple and functional, and MY GOD SO EYEWATERING. However, it’s worth mentioning because it’s also fast, and easy, and mysteriously rarely mentioned. It uses the visualiser gitk to graph revision history, and probably 80% of the git things you might desire without pausing to be pretty about it.

tig

⭐️⭐️⭐️ Fast, simple, underdocumented, tedious to install.

tig is a console-mode git GUI. It is certainly small.

Gitkraken

⭐️⭐️⭐️⭐️ looks great and works even on Linux

gitkraken seems sleek, and runs on Linux, macOS and Windows. It has pretty good visualisation of the commit graph and only displays the essential stuff in the interface, which is nice, although occasionally laborious if you are doing something non-essential. It uses gigantic amounts of RAM. Interactive rebase support is weak adequate. (closed-source, USD60/yr, free for non-commercial use)

Git-fork

⭐️⭐️⭐️❓ Looks great, Mac/Windows

git-fork looks beautiful. It is commercial-but-free, but I have not used it enough to give it a real review. Presumably they will sell paid versions at some point?

Smartgit

⭐️⭐️⭐️ Overbusy UI, works on Linux too. ️️ SmartGit is less well-known. It has more features than e.g. Gitkraken, but uglier UI. Closed-source, USD79/yr for updates, free for non-commercial use. It shows you too much information per default (do you really need the full text of your last git push on display?) but if you can avoid the distraction it is functional – supports pull-requests, git flow and such. The interface can be configured to be less busy if you close some of the information windows, but nothing will make those outlined icons less detailsy.

SourceTree

⭐️ OK UI but it intermittently freezes your machine, and sometimes corrupts your data.

Somewhere between Smartgit and Gitkraken in usability is SourceTree (closed source, free). This is Atlassian’s git client for Windows and macOS. Like all the other fancy contenders it uses gigantic amounts of RAM. Memory usage and responsiveness can be improved by restarting it every hour or two.

It also supports mercurial, which is nice if increasingly irrelevant. It has excellent interactive rebase support. But it often crashes half way through said rebase.

On macOS it leaks file handles, which they claim is an upstream macOS bug, and while I do believe them that Apple has done a bad thing, the developer’s management of this issue is also a bad thing. Since that bug dates to 2011 clearly most other developers on the macOS platform have found more efficacious workarounds than blaming someone else via snarky links to bug trackers. Atlassian “solving” their clients’ problems by complaining and buck-passing might work if this were a hilarious cosmetic quirk, but in fact, the side-effects of said bug can include, in my own experience, significant data loss and file corruption, even in other applications that are nothing to do with SourceTree; when your whole system goes down the sinkhole of file handle exhaustion, everything goes very bad. Who would leave a bug in their software that destroys client data and brings down their systems unfixed for more than 5 years? Someone who you should not trust.

There are other ancient and yet irritating cosmetic quirks such as ignoring your remote repo ordering, which as of 2019 remain unfixed since 2011, so definitely expect “side project” levels of support from this product despite its hefty corporate sponsor.

GitLens

🏗 A VS Code plugin. Does… some stuff? Augments/clashes with inbuilt git support in VS Code and in trying to work out the interrelation I got bored, so have not investigated properly.

RabbitVCS

RabbitVCS integrates git (and also SVN) into Linux file managers. Looks OK, although development activity is very low.

On GNOME desktops for example, it can be installed in the following fashion:

sudo apt install rabbitvcs-nautilus

Working Copy

The only iOS client. Seems fine.

Pocket Git

Pocket Git works on Android.

git-cola

git-cola is open-source, in python. Haven’t used.

giggle

giggle (open-source, Linux/GTK only) seems to be purely a repository viewer, but given how badly that is generally done this plus git CLI might be a sweet combination.

Sparkleshare

Sparkleshare is designed for file syncing for designers, not versioning code for coders. Nonetheless it is a simple git GUI with attention from designers which, as I have mentioned, is a weak spot in the bulk of offerings.

Git repository management servers

GUI via browser.

Merge tools

Also handy. See merge tools.