The Living Thing / Notebooks :

Git GUIs

Usefulness: 🔧 🔧
Novelty: 💡
Uncertainty: 🤪 🤪 🤪
Incompleteness: 🚧 🚧 🚧

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 never mentioned. It uses the visualiser gitk to graph revision history, and probably 80% of the git things you might desire with no fuss.

tig

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

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

Gitkraken

⭐️⭐️⭐️⭐️ looks great and works even on Linux but not good at multiple repos.

gitkraken seems the sleekest and hippest, and runs on Linux, macOS and Windows. It has pretty good visualisation of the merge graph and only displays the essential stuff in the interface, which is nice. It uses gigantic amounts of RAM. Interactive rebase support is weak pretty good now. (closed-source, USD60/yr, free for non-commercial use)

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 strategically ignore stuff it’s very nice - 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 Atlassian’s git client for Windows and macOS. Like all the other 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, as far as Apple is concerned, 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 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.

So, YMMV.

GitLens

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

Working Copy

The only iOS client.

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 that’s actually done really badly generally, so 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.