7 ms·
If you're an emacs user, check out https://magit.vc/ https://magit.vc/
by beshrkayali 6y ago
If you're an emacs user, check out https://magit.vc/ https://magit.vc/
- gumby 6y agoLife changing
- tarruda 6y agoI've always been curious about how it compares with vim + fugitive, which provides a good git/vim integration
- elpatoisthebest 6y agoI'm a vim + fugitive user who tried emacs for a year about 2 years ago. I eventually moved back to vim but the thing I miss from emacs is magit. It made so much sense to me. Loved it.
- jperras 6y agoHi. Hardcore 10+ year vim zealot here. Magit on emacs is hands down the greatest interface to git that has ever been conceived. Vim + Fugitive doesn't even come close (sorry, tpope, I still love you). So much so that I started using emacs with evil-mode, so that I can use my vim muscle memory and have access to magit. That is how good magit is. It literally converted me to the light (dark?) side.
- dvcrn 6y agoCare to explain what you think is so good about it? I used emacs with evil a couple times but never understood the hype around magit
- BeetleB 6y agoNot a heavy magit user (or git, for that matter), so I can't say. However, you may want to look on Youtube for ideas: https://www.youtube.com/watch?v=7ywEgcbaiys https://www.youtube.com/watch?v=7ywEgcbaiys https://www.youtube.com/watch?v=j-k-lkilbEs https://www.youtube.com/watch?v=j-k-lkilbEs The second (long) one is from John Wiegley[1] whose various packages have a fairly high impact, so I expect the video will be very educational. https://github.com/jwiegley https://github.com/jwiegley
- rgoulter 6y agoMagit's user interface has a status screen, from which you can perform the git commands. In short, I think it's got the best of both a GUI or a CLI interface: If you're unfamiliar with which magit commands you want to run, its interface is highly discoverable: it can list all the commands you can run, and for each of these it lists the most common options. (Some more advanced options are hidden but can be configured to show). Once you're familiar with the commands you want to run, they can be run by typing the sequences of keys directly. (e.g. `c c` to commit, `c w` to reword, `r -i e` to start an interactive rebase onto another branch, etc.). -- This is the speed of having two letter aliases on the CLI, but without having to set them up. This combined with the other dynamics that you get from having its interface in a text editor: With a CLI, I'd have to type out a commit's hash (3 or 4 letters) to operate on it; with magit, I can operate with a commit by having my cursor on it. When choosing a branch, emacs' narrowing tools are better integrated than what you get out of the box with CLI. Because it's part of the Emacs editor, you can write custom convenience functions which build on top of the functionality if you want.
- shermanmccoy 6y agoWith a simmering case of emacs chord key induced RSI I recently tried to make the switch to vim. The big thing I missed was magit, vim's port left me wanting, and the other tools just seemed like git cli embellishments. Just when I thought I was out, magit drew me back in. Anyway, the screenshots from the OP make this project look like a very worthwhile undertaking. I can see why, perhaps frustratingly for the present project's author, this provoked a discussion on magit.
- JohnL4 6y agoOff topic, but have you transposed left Ctrl and caps lock? That saved me from real pain, not kidding.
- shermanmccoy 6y agoThanks for the suggestion I will give this a try. I currently have Esc + <some key> bound to some of my most common actions. For me the 80/20 rule seems to apply to emacs shortcut keys, so making just a couple of them easier has a big impact.
- beshrkayali 6y agoan alternative route (what i've been doing for the past 5 years or so) is to switch left Ctrl with left Alt. My emacs life was never the same after.
- jperras 6y agoI do believe it is the most well thought out porcelain to git that I have ever come across, in any editor that I've seen. The ability to integrate nearly all the various git CLI tools (not to mention forge, the magit plugin that integrates with github/gitlab) into one cohesive interface is incredible. Many blog posts have been written about the features of magit, so I wont attempt to enumerate them here.
- ivann 6y agoDid you try vimagit? If so, what's wrong/missing with it? https://github.com/jreybert/vimagit https://github.com/jreybert/vimagit
- jperras 6y agoMany things. It's great, but it doesn't hold a candle to magit. The README lists out several things that are missing that not only exist in magit, they aren't even notable features!
- soraminazuki 6y agoI think they serve a mostly different purpose. Fugitive provides vim integration, but you're supposed to use the stock CLI for a lot of operations. Magit, on the other hand, strives to provide an alternative interface for git. The surprising thing about Magit is that while it does provide an alternative interface, it does it in a way that's flexible enough that you won't have to constantly fall back to the CLI. Plus, its UI has good discoverability. What I find superior about Magit is that it has asynchronous git blame. With Fugitive, git blame can take an unpredictably long amount of time with large repositories. It also used to be that this made vim unresponsive to any form of input and the only way to interrupt it was to terminate the vim process externally. This fortunately isn't the case now with recent versions of Fugitive, but it still blocks the editor unless you interrupt it. Magit doesn't have this issue and can show the git blame results as it's being computed. In terms of cost to entry though, I think Fugitive is better in this regard. With Fugitive, you can get started almost immediately if you're familiar with the git CLI. On the other hand, you would sometimes need to look up how to accomplish some things with Magit because it sometimes uses different terminology from stock git.
- jackewiehose 6y agoHow is the state of Magit on MS-Windows? For me it's unusably(!) slow with a 3-4 GB repository. What is the best way to run Emacs on Windows? I'm using cygwin because I need so many unix tools anyway.
- pandatigox 6y agoMaybe use Windows Subsystem for Linux?
- efreak 6y agoWSL1 makes filesystem operations slower. WSL2 will make it slower for the windows side
- yuribro 6y agoIt works great on WSL2, if your IDE (or editor, which can be the same Emacs) is also inside the WSL environment. I don't remember how the performance was in WSL1 (I switched as soon as WSL2 was in the insider build, for unrelated reasons), but I vaguely remember it worked ok, as in performance was snappy just like on native linux. (The repo is of comparable size, 2-4GB)
- BeetleB 6y agoMagit makes a ridiculous amount of forks for even trivial git commands, and Windows doesn't handle it well. For me, emax64 works perfectly in Windows, although I don't use magit on it. Beyond magit, I see no difference between my Windows and my Linux emacs usage.
- xxpor 6y agoWell, let's just be honest here, a 3-4 gb git repo is ridiculously huge. I'd expect everything to be slow. For reference, a full checkout of the linux kernel is 2.5GB.
- jackewiehose 6y ago
- look_lookatme 6y agoAlso if you've never used Magit over SSH via TRAMP, you don't know what magic is...