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.
⭐️⭐️⭐️⭐️ Fast, simple, built-in, underdocumented, effective, unsightly.
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
It uses the visualiser
gitk to graph revision history, and probably 80% of
the git things you might desire without pausing to make it look less awful.
⭐️⭐️⭐️ Fast, simple, underdocumented, tedious to install.
tig is a console-mode git GUI. It is certainly small.
⭐️⭐️⭐️⭐️ looks great and works even on Linux
gitkraken seems sleek,
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, although occasionally laborious if you are doing something nonessential.
It uses gigantic amounts of RAM.
Interactive rebase support is
(closed-source, USD60/yr, free for non-commercial use)
⭐️⭐️⭐️❓ Looks great, Mac/Windows
git-fork Looks beautiful and 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?
⭐️⭐️⭐️ 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.
⭐️ 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.
🏗 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.
The only iOS client.
Pocket Git works on Android.
git-cola is open-source, in python. Haven’t used.
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.