I’d say it’s what makes magit.. magit. The whole command composition interface (almost like chords) is what drives people to it. The looks and some fringe M-x commands are… just there
There's more to magit, especially its way of grabbing information from context in the log/graph view for instance, or the implicit chunkning, it's pure papercut removal.
It also enables super easy workflows. To give an example, consider working on a fork of a project from GitHub. You clone the project from its source and make some changes and commit them. Where do you push the changes? You make a fork on GitHub. Go to magit, press a couple of keys to add a remote, name it the same as your GitHub username, magit automatically sets the URL correctly.
Now you realise you've put those commits on your new master branch but etiquette says you should put them on a separate branch. A couple of keys creates a "spinoff branch". Magit automatically creates a new branch at that point, sets the upstream of that branch to the old upstream (e.g. origin/master) and resets the old branch (master) to its upstream.
Now because your remote is set as "push default" you can easily push to it. Magit will now show you if upstream (the other remote) has diverged which means you press a couple of keys to rebase on to upstream then force push to your fork.
And this doesn't even mention things like doing an interactive rebase. Magit helps immensely there. The diff "dwim" is useful too. The list goes on.
> Where do you push the changes? You make a fork on GitHub. Go to magit, press a couple of keys to add a remote, name it the same as your GitHub username, magit automatically sets the URL correctly.
Or, just use the magit-forge package by the same author and run `forge-fork`.
haha yeah magit rebase makes you learn without trying. Everyday I have colleagues screaming in terror having to rebase, while emacs users are whistling.
i'm also curious about having magit extensions, as many people say, git lacks some stuff as UI, and they may fit very well around magit
The "spinoff" feature I mentioned is a magit extension. As are other things like stashing (git's own stashing only recently got updated to be able to do little bit more of what magit can do). Magit actually claims to be a git porcelain, not just a git GUI. I think the long term goal is still to do what it does via libgit and not even use the git CLI at all.
which-key is more like autocomplete for keybinds. I consider it orthogonal to transient. It's meant for modals that show you what keybinds actually exist given some "prefix" you have just inputted. If I had to make an analogy, I'd say which-key is closer to company+counsel+ivy than transient.
I have used which-key with the three packages I just mentioned for as long as I have been using Emacs, and this is how I've always seen its role.
I’d say it’s what makes magit.. magit. The whole command composition interface (almost like chords) is what drives people to it. The looks and some fringe M-x commands are… just there