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.
⭐️⭐️⭐️ looks great and works on Linux but not good at rebases or 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. Rebase support is weak, but it's functional apart from that. (closed-source, USD60/yr, free for non-commercial use)
⭐️⭐️⭐️ 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.
⭐️ nice UI but it intermittently freezes your machine, and sometimes corrupts your data in other open apps
SourceTree (closed source, free) is Atlassian's git client for Windows and macOs. It also 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, by far the best out of everything detailed here. But it might crash 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.
TBD. A VS Code plugin. Does… some stuff? Clashes somewhat with inbuilt git support VS Code and then I got bored, so have not really investigated properly.
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.
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.