Magit
magit.vc
magit.vc
BTW, if you use and appreciate magit, please subscribe and contribute financially (yes, I do that). We shouldn't expect great tools to be maintained and developed for free.
Are you referring to https://github.com/kahole/edamagit ?
For whatever reason, Magit's opinionated workflows never clicked with me. A part of it is the concern that it will do something weird to my repo that I'll then have to waste more time undoing manually. I usually don't trust sugary wrappers around tools. And another is the fact I don't use Emacs on all machines, and setting up Git on a remote system is just a matter of copying over my config and some shell integrations.
Also, on a more personal note, I find the cultish fanboyism whenever Magit is brought up slightly offputting. Does anyone have anything bad to say about it? No software can realistically be this infallible. :)
Just in case you have a longer workflow, checking out a branch should just be `b b` and then select the branch from a list with typing or up/down.
You can easily look at magit's process buffer with $ to see got commands run.
Magit is also good about not running more hit commands than necessary unlike other porcelains.
There's some interference coming from me running Emacs/Magit on WSL1, and corporate nuking my Windows Defender exclusions lists, meaning "real time protection" is slowing every file write down. Still for small to medium repos it's wonderful; for that one large at work, it's... pretty much setting my tea breaks.
Currently the most annoying mysterious issue is that some commands (usually pulling or rebasing, sometimes committing too) reach the point of Magit echoing "git finished", and then... whole Emacs remains frozen for 30-120 seconds. I haven't traced that tone to source yet.
`M-x toggle-debug-on-quit` and `C-g` during the freezing will probably help here, though I would guess the problem is highlighting since that tends to take a lot of time on big diffs.
In my experience this brings emacs to a crawl.
Some of my colleagues use emacs/magit, and after seeing how absolutely lovely the workflow is, I've put in a lot of work over the last few months expanding it. You can check out my fork here: https://github.com/ckolkey/neogit/
One thing I particularly like to tease my emacs' colleagues about is that my magit is faster than theirs thanks to neovim's async capabilities.
emacs has async i/o as well, it's just not used very pervasively.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Se...
> emacs has async i/o as well, it's just not used very pervasively.
The most notable exception I can think of is elfeed which works very smoothly.
But I would say, you really have to have drank the Emacs Koolaid to appreciate Magit‘s greatness.
That being said it’s only after I discovered Magit I also started to appreciate Emacs‘ built-in version control mode: The same key combo „C-x v n“ (Versioning Next step) does initialize a repo and checks in files with any kind of backend (be it git, mercurial or subversion). That’s pretty neat, too. With „C-x v l“ I access „git log“ for any file where I can access diffs or visit an older version of the file in a separate buffer e.g. to try out an older implementation of a function. „C-x v g“ gives me a „git blame“ integration jumping straight to the line I was hovering on.
So for exploring git logs I am using vc-mode but staging and branching I am leveraging Magit. They complement each other well.
I pronounce it like gif
1. Install Emacs
2. Install Doom (git clone + run a command): https://github.com/doomemacs/doomemacs
3. space g g to invoke magit
i don't use emacs as a daily driver anymore but i solely use it for my git stuff.