6 ms·
Magit
- easeout 3y agoHow to pronounce it? Any way you want, it seems. https://magit.vc/manual/magit/How-to-pronounce-Magit_003f.html https://magit.vc/manual/magit/How-to-pronounce-Magit_003f.ht...
- dietr1ch 3y agoIt's magit, not magit, nor magit.
- bhdlr 3y ago> It's magit, not magit, nor magit. I pronounce it like gif
- hsjqllzlfkf 3y agoMa-git. The second syllable like gif.
- Conscat 3y agoI love magit and I use it basically every day. But lately, at my work's monorepo, I've been greatly pained by how synchronous it is (like much of Emacs). When I want to fix a unit test, I find suspicious commits by a grep for some keyword through diffs in the git log, and unlike the git CLI, magit will not show me any matching commits until it has searched through all of them (capped at 256 matches by default), which takes a very long time. I love so many creative Emacs tools, but the wait times from magit and consult get painful.
- procinct 3y agoIf you’re interested, you should take a look at Sublime Merge. I switched to it a couple of years ago. Made by the creators of Sublime Text so it’s as snappy as you’d expect. And it has some surprisingly powerful tooling when it comes to searching the history (list all commits that changed a file and by a certain author etc). I also like that you can see a log of all of the git commands it’s executing behind the scenes.
- ElectronBadger 3y agoI had a brief and rather complicated affair with Emacs some years ago. I tried Magit then. It was ok(ish), but could not understood what all the fuss about. Sublime Merge is so much better -- blazing fast and designed so well. Perhaps I'm not objective here, since I'm also a die-hard fan of Sublime Text -- the best editor for writing research notes, papers, prose, and code :)
- dietr1ch 3y agoAt work I go back to using the command line too and use emacs to edit the commit messages. I find it's not only magit that's not ready for huge monorepos. I had to maintain a huge directory blacklist before sparse clones were supported internally (before everything pretended to be around and was streamed/cached underneath, which tripped every regular tool into fetching too much)
- TeMPOraL 3y agoI'm starting to feel the pain too, and we're not even at a monorepo stage - just a large project with lots of history. 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.
- bdzr 3y ago> 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.
- ParetoOptimal 3y ago> There's some interference coming from me running Emacs/Magit on WSL1, and corporate nuking my Windows Defender exclusions lists In my experience this brings emacs to a crawl.
- wodenokoto 3y agoI’d heard it was worth it even if you don’t use eMacs. Spend half a day trying to figure out how to install and just gave up.
- noelwelsh 3y agoWhat I do is: 1. Install Emacs 2. Install Doom (git clone + run a command): https://github.com/doomemacs/doomemacs https://github.com/doomemacs/doomemacs 3. space g g to invoke magit
- dima55 3y agoYou "apt install emacs elpa-magit". Your OS should respect you enough to make it this simple.
- weaksauce 3y agoIt is worth it imo. there is a caveat that you will have to learn a little bit about emacs to effectively use it if you accidentally do something that throws you into a buffer(file). you need to be able to navigate and delete buffers and frames. if you know vim bindings and install doom emacs it helps a bit too since emacs commands are a bit inscrutable and hard to configure well without it. i don't use emacs as a daily driver anymore but i solely use it for my git stuff.
- TeMPOraL 3y agoMagit is one of the two software packages known to make non-Emacs-using people install Emacs only for that package. The other one is Org Mode.
- seaknoll 3y agoLove magit. I recommend using it with magit-delta https://github.com/dandavison/magit-delta https://github.com/dandavison/magit-delta for the syntax highlighting.
- ParetoOptimal 3y agomagit-delta's dev is very responsive, but there's still an outstanding performance issue blocking me from adopting it: https://github.com/dandavison/magit-delta/issues/9 https://github.com/dandavison/magit-delta/issues/9
- jwr 3y agoIncredible tool. I've been using it every day for years now and can't imagine using git without it. The speed with which I can stash/unstash, switch branches, rebase, cherry pick or selectively stage is incredible. It's like riding a bicycle rather than walking. 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.
- krylon 3y agoMagit made git usable for me. It's both intuitive to use and powerful (at least compared to my needs).
- ckolkey 3y agoFor neovim users, there's a work-in-progress clone, neogit: https://github.com/timUntersberger/neogit/ https://github.com/timUntersberger/neogit/ 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/ 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.
- mi_lk 3y agoDo you have plans to merge upstream
- ckolkey 3y agoI have pull requests open, so hopefully, yes :)
- dmm 3y ago> 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.
- ParetoOptimal 3y agoAre you referring to process sentinels? https://www.gnu.org/software/emacs/manual/html_node/elisp/Sentinels.html 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.
- gollum999 3y agoIn my experience it's pretty rare that a frontend comes along and fundamentally changes my workflow around the underlying tool, but Magit falls into that category for me. Truly a great piece of software.
- ziftface 3y agoI've been using lazygit and it's amazing. I used to use magit and I think it's great but lazygit seems to have an easier learning curve and is trying to accomplish the same thing (easy reach to the most common git actions).
- G3rn0ti 3y agoI got so used to staging individual lines instead of files — it’s so much more intuitive! With „s“ and „u“ I sift through my edits and discard any debug code that I haven’t checked-in accidentally for a long time. Magit also speeds up cycle management of dev branches so much. It‘s usually just a couple of single key strokes — pretty cool. 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.
- maximilianroos 3y agoThere's a great magit plugin for VS Code: https://marketplace.visualstudio.com/items?itemName=kahole.magit https://marketplace.visualstudio.com/items?itemName=kahole.m...
- vonwoodson 3y agoI'd like to plug [tig](https://github.com/jonas/tig https://github.com/jonas/tig) for those who don't use emacs. I see lazygit recommended here too, but I've been using tig for years now and love it's simplicity.
- tsuujin 3y agoI just adopted lazygit after comparing lazygit, tig, and gitui for a few days each. I’m surprised by your take because tig seemed the least user friendly and most complicated of the three by a large margin.
- imiric 3y agoI'm surely in the minority here. I've been using Emacs for almost a decade now, but I just can't get into the Magit workflow. I've tried several times, but always end up going back to Git on the command line. I have dozens of aliases, shell integrations, a nice diff viewer[1], etc., and interacting with Git has become muscle memory. I can commit, cherry-pick, rebase, bisect, fix conflicts, etc., in a fraction of the time it would take me to navigate Magit's UI. I'm sure with enough practice, a Magit user could do this more quickly and efficiently, but honestly, with some custom-built porcelain, Git's UI is not so bad. Though this could very well be Stockholm syndrome after using it for such a long time... 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. :) [1]: https://github.com/dandavison/delta https://github.com/dandavison/delta
- tectec 3y agoI mainly use magit for reviewing changes, staging and committing. I haven’t found an interface that compares for staging and discarding hunks. But checking out branches I do on the command line and I use Meld for resolving conflicts.
- adamrt 3y ago> But checking out branches I do on the command line 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.
- ParetoOptimal 3y agoAnd if you use a narrowing framework like consult+vertico+order less you can select the right branch super quick.
- RileyJames 3y agoI love that use of the VC domain. Refreshing.
- ossusermivami 3y agoI switch between magit while on emacs/coding and lazygit while on terminal... I love them both for staging/amend/cherry-pick etc....