Git UI's

Posted on Mar. 11, 2024 by Ben Dickson.


Some random Git UI's I use in various circumstances

gitui

A terminal UI, starts up quickly, nice interface for staging lines or chunks

For a long time it lacked the ability to write multi-line commits (at least without pressing a shortcut to open the commit message in an external editor, then saving+closing this), so I had a tiny fork which added a basic shortcut to add this. However as of 0.25 this is now fixed

I don't really use any of the other functionality in it, but as a nicer git commit alone it was useful

magit

Maybe slightly over-hyped but a nice UI within emacs

It does feel a bit heavyweight package to install (if you ignore the irony of calling anything within emacs bloated) - not bad thing, but feels a little like it's fighting against it's environment.

There is an unrelated project based on the same interface, gitu - it seems very early days, but looks promising.

Github Desktop

When working on Linux, and with mostly a single repository project, I mostly used gitui.

Currently working on something which involves a lot of separate repositories, and on Windows, and hsoted on Github - for which using Github Desktop proved about the best fit.

It provides a good overview all the checked out repos - e.g blue dot shows up on repos which have uncommited changes, up and down arrows indicate unpushed or unpulled changes.

I dislike it hides the staging area, instead you uncheck files or deselect lines (which makes it much harder to preview what the resulting commit's diff will be like - but the trade-off is reasonable because it a lot simpler to pickup if unfamiliar with Git's weirdness.

Ye ol' git-gui

I quite often still use git gui occasionally - it's "Amend Commit" option is by far the smoothest implementation of fixing a previous commit (either rewording or adding/removing changes), and for staging lines or commits it also works as well or better than other GUIs.