It's easy. 1) Listen to the fans when they suggest a feature even if it doesn't click when first hearing about it, but then approve upon the initial suggestion, turning it into something I myself would want to use too.
2) Ignore the haters except for telling them how to disable that one feature that is so abhorrent it makes the whole tool unusable:
(with-eval-after-load 'git-rebase
(setq auto-mode-alist
(delete (cons git-rebase-filename-regexp 'git-rebase-mode)
auto-mode-alist)))Many many people use git as cvs and are confused once it goes past “commit and push”.
I know I don't really know what to do if someone pushed to master whilst I was working and it complains. Usually I just make a new checkout and merge in by hand.
I know immediately what magit is going to actually do when I use it. I could easily do everything in the terminal but I don’t because magit lets me do things so much faster and with fewer keystrokes.
Interactive staging of hunks in magit is far superior to doing the same thing with the CLI. Making interactive staging easier helps prevent hunks from ending up in the wrong commit. Oftentimes 2 different parts of a changed file in the worktree should not be in the same commit, so being able to stage hunks lightning fast in emacs is a game changer.
Here is an example of what I would do in magit with spacemacs which has evil-magit
SPC g s — pulls up magit
Tab to expand a file
s to stage
c c to commit
l L to see a detailed graph of all local branches
Move cursor to commit I want to cherry pick
A a to cherry-pick commit that my cursor is under
p p to push my branch to remote
When I’m deep in work it’s so incredibly lower friction to do that sequence of actions in magit than using git CLI.
Sure I’ll still drop down to the real thing if I need to do some really esoteric spelunking through the repo with plumbing commands but if I’m already in emacs magit is amazing.
I am a magit lover and have been using it for at least a decade now and can't imagine going back to a terminal.
It's not the marketing. It just works really darn well and it speeds up my workflow.
I like magit, but I never figured out the rebase flow with it, so I just do that on the command line.
Where magit really shines for me is being able to stage and unstage hunks of code very easily. Looking at my current changes, stashing and un-stashing, searching through git log, seeing the diff of a particular commit, quickly fetching from upstream or switching branches... All of that becomes quick and easy once the key bindings become second nature. There are definitely major quirks of the UI / UX, but I found it worth fighting through that.
edit: I've re-read your post again, and I would just like to reiterate that staying away from magit's interactive rebase might be a good idea. Besides that, I also try to stay away from triggering ediff mode -- even after spending time with it and getting to know how it works, I've decided that it's simply not very good.
It would only pop up from running `git rebase -i` (or whatever) if your $EDITOR is set to emacs. I'm a heavy emacs/magit user, and even I find the idea of setting my $EDITOR to `emacs` abhorrent.
Rare, yes.
> , because everyone loves Magit. It might be the most-loved piece of software ever. Every other week, there is an article on Hacker News about how it's the best piece of software ever to exist, and I've never seen anyone say anything bad about it.
> So I wonder what marketing techniques they use to make people feel this way; the emotions are strong, and widely shared
Ah, you've lost me. Why are you dismissing the other possibility that you have bad judgement?
So yes, most Git users are just like you and see no upside to Magit. Call it the silent majority.
For other things... you'd have to ask somebody else. I generally do any type of branching or merging or similar using the git cli, and that's part of the beauty of magit: she doesn't care when I cheat on her that way.
I use emacs as my daily driver also, however if bash wants an editor it's usually a small task, so I'm just as happy to use vim or nano. Most often I can't install emacs on remote servers anyway.
Obviously, my experience must be unique, because everyone loves Magit. It might be the most-loved piece of software ever. Every other week, there is an article on Hacker News about how it's the best piece of software ever to exist, and I've never seen anyone say anything bad about it. So I wonder what marketing techniques they use to make people feel this way; the emotions are strong, and widely shared.
Maybe there is some fundamental insecurity about Git, and Magit makes people comfortable? I've never felt that way, but I did start using Git the weekend it came out, and my Github user ID is in the low 2000s, so I might have had time to get Stockholm Syndrome with the Git UI. I suppose it's possible that the people writing these articles may not have even been born when Git came out, which is interesting to think about actually!