- git gui
- Sublime merge
- Cycligent Git Horizon
- VS Code VCS integration
- XCode git integration
- Working Copy
- Pocket Git
- Git repository management servers
- Merge tools
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.
⭐️⭐️⭐️⭐️ Fast, simple, built-in, under-documented, effective, unsightly.
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.
⭐️⭐️⭐️⭐️ 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
(closed-source, USD60/yr, free for non-commercial use)
⭐️⭐️⭐️❓ 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.
⭐️⭐️⭐️ 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 has been around for a while I think but I completely forgot it. Mac/Windows.
⭐️⭐️⭐️⭐️ 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 does’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 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).
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
View a Git Graph of your repository in Visual Studio Code, and easily perform Git actions from the graph.
This is kind of what I actually want from git and accordingly I am auditioning it.
Git History provides a history view, which is sufficient to make the git integration of VS look like a real git GUI. Auditioning
Not a clear value-add for me. Supplements the VS Code built-in git version control with a shinier, more animated blame console so you can see who did what.
XCode git integration
Unlikley to arise for me.
⭐️ 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 then giving up. Atlassian “solving” their clients’ problems by complaining and buck-passing might work if this bug were an amusing cosmetic quirk, but in fact, the side-effects of said bug can include, in my own experience, significant data loss and file corruption. I do not merely mean in SourceTree. This app destroys random data, when your whole system goes down the sinkhole of file handle exhaustion. Who would leave a bug in their software that destroys client data and brings down their systems unfixed for decadal time scales? Someone who you should not trust. This is a garbage product.
There are other ancient and yet irritating cosmetic quirks such as ignoring remote repo ordering, which as of 2019 was unfixed since 2011. Despite its hefty corporate sponsor, this is a hobbyist project and inappropriate for professional use.
⭐️⭐️⭐️ Fast, simple, under-documented, tedious to install.
tig is a console-mode git GUI. It is certainly small.
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
Similar to RabbitVCS but for Windows. TBC
The only iOS client. Seems fine.
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 given how badly that is generally done this plus git CLI might be a sweet combination.
Git repository management servers
GUI via browser.
Also handy. See merge tools.