Git GUIs


This octopus is, puzzlingly, missing its mouth. I am not sure whether that makes it less terrifying, or more.

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, speedy experience of git command-line to one with better visualisation and more discoverable UX, you must sacrifice time and disk space upon the altar of bloat.

Anyway, there are is a long list, and also a longer list of alternatives. I’ve used… some. There are too many. All things being equal I would select one that was actively maintained.

git gui

⭐️⭐️⭐️⭐️ Fast, simple, built-in, under-documented, effective, unsightly.

The hatchetface git gui command invokes a git gui of sorts, which is free, simple and functional, and OMG SO EYEWATERINGLY UGLY. However, it is worth mentioning here because it’s also fast, and easy for at least some tasks, and mysteriously rarely mentioned. It uses the visualiser gitk to graph revision history, and probably 60% of the git things you might desire.

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)

Fork

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

Fork looks beautiful. I have not used it enough to give it a real review. USD50. The developers are a married couple, which I find charming.

Sublime merge

Subline merge, by the creators of sublime text, looks fun. Not yet tried. USD99 for 3 years of updates.

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 I really need the full text of my last git commit on constant display?) but if you can focus through the information overload it is functional — supports pull-requests, git flow and such. The interface can be configured to be less busy if I close some of the information windows. However, those detailsy outlined icons and opt-out information overload will continue to fill me with the same faint nagging excess that I feel when I get stuck on some ambiguously spammy mailing list that I cannot work out how to unsubscribe from.

Tower

Tower has been around for a while I think but I completely forgot it. Mac/Windows.

Gitup

⭐️⭐️⭐️⭐️ Simple, elegant, open-source, but mac-only.

Pierre-Olivier Latour’s Gitup is simple and and has a different graph visualisation than the competitors. Its main weakness is that it is bad at showing the content of commits.

Cycligent Git Horizon

⭐️⭐️⭐️ Proudly weird, details-oriented, cross-platform.

Git Horizon is a web technology tool which runs on the desktop User interface philosophy is to represent the source tree as a state machine, which is a… singular choice. Depending on your personality type you might regard the resulting UI as promoting either 1) Mindfulness or 2) Obsessive-compulsive disorder. For me the main friction point was that it doesn't support merge resolution in-app which means it's going to be too hard to explain to my colleagues. The state machine visualisation… I cannot decide if it is helpful or not. Closed source, free. Macos/Windows/Linux.

Gitblade

Gitblade is a GUI which has less features than some (interactive rebase is by editing text files) but seems to do the important stuff. USD20/year? (month? Not really clear). macos/linux/Windows. There is a free version, but that is too minimalistic to solve actual non-trivial problems. If you just need to visualise the code versions, just run git gui for the basic visualisation.

VS Code VCS integration

⭐️⭐️⭐️ Simple, maybe already installed, free, not quite as easy as a specialised git client but fine.

VS Code includes version control integration. It is competently executed and makes some things easy. It does not have the luxurious spacious feel of a specialised git client when it is crammed into the text editor panes — so for example it is not wonderful at viewing revision history and so on. On the other

Git History

[Git History[(https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) provides a history view, which is sufficient to make the git integration of VS look like a real git GUI.

GitLens

Fast, simple, underdocumented, not a clear value-add. Supplement the VS code built-in git version control with a shinier, more animated gui. Does… some stuff? I have not investigated deeply.

XCode git integration

TBD.

SourceTree

⭐️ OK UI but it intermittently freezes your machine, and sometimes corrupts 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 is 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 remote repo ordering, which as of 2019 was unfixed since 2011. One should definitely expect “side project” levels of support from this product, despite its hefty corporate sponsor.

tig

⭐️⭐️⭐️ Fast, simple, under-documented, tedious to install.

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

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

TortoiseGit

Similar to RabbitVCS but for Windows. TBC

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.