You summon magit, navigate the lines you want to stage, hit a key and go back to working. Most of the UI is extremely lean and swift. It's even more powerful than a git video or book to learn things because magit will automatically infer information (if you're on a line of git log timeline, rebase will automatically do it from HEAD to that commit). It will pimp the rebase buffer so that you can change pick to reword / drop / else in one key. It's so obvious you don't even need the manual to discover how to use git. Really one of the nicest UX I know of.
The seamlessness between the command line and the magit UI is another of its strengths.
I don't think I recall a time where magit interfered with the semantics
As a comparison, VSCode git extension adds a side bar with it's own subsections, and buttons with slightly obscure iconography and meaning, would also break usual git workflow (afaik you cannot edit a staged file and restage, it will complain).
Magit, afaik, never does this, it reuse the outlines of git output, it just parses/reuses the local information under the buffer cursor/line and fill in the details for you so everything is one key away. It's like ast interpreter vs bytecode.
It has a lot of very nice overlays to git operations, I tend to use the CLI for most basic operations but the interactive staging/unstaging of magit, as well as its support for rebasing, is absolutely stellar and significantly more convenient than the CLI.
One of the neat bits is, for some operations (e.g. committing, rebasing, ...) if you set emacs as EDITOR and magit has been loaded magit will automatically trigger and take over the buffer instead of leaving you with a basic text buffer.
You don't have to be an Emacs user to use applications written for Emacs. You can use just that application (in this case Magit) and do nothing else in Emacs. That is a perfectly valid use case -- Emacs is closer to a Lisp VM than a text editor.
Thanks - this is exactly the info I was looking for when opening this thread.
I am going to try out Magit on Monday and, if its good (it probably is) will pass it along to some colleagues. I am very comfortable with the git CLI but many of the engineers at my work are not. Anything that can help me shed my "git guy" title will be a win for all involved.
Valid but stupid. Don't carry both an Android and an IPhone. Choose one and get good at it.
There may be valid reasons to only ever have one type of runtime installed, but most people aren't that fuzzy about the compilation target of the programs they use, as long as it runs and is relatively easy to install.
I'd describe it more as a set of text menus for git operations.
It's a text UI, not a graphical one.