4 ms·
What is Magit?
by phkahler 4y ago
What is Magit?
- ghqst 4y agoThe homepage of the website explains it well, as homepages should: https://magit.vc/ https://magit.vc/
- deleted 4y ago[deleted]
- dstala 4y agoHad exactly same question
- masklinn 4y agoIt's a graphical-ish git client for emacs. 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.
- kqr 4y agoI would change one thing in your answer: it's not for Emacs, it's for anyone. If you haven't tried Magit because you're "not an Emacs user" I would recommend you reconsider. Magit is great, whether or not you use Emacs for other things. 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.
- anthomtb 4y ago>it's not for Emacs, it's for anyone 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.
- throwawaysalome 4y agojust magit and do nothing else in Emacs. That is perfectly valid... Valid but stupid. Don't carry both an Android and an IPhone. Choose one and get good at it.
- kqr 4y agoIs that why only use applications written for CPython and not the JVM, .NET CLR, nor V8? 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.
- pmoriarty 4y ago"It's a graphical-ish git client for emacs." I'd describe it more as a set of text menus for git operations. It's a text UI, not a graphical one.
- beermonster 4y agoA Git Porcelain inside Emacs
- throwawaysalome 4y agoSomeone who cannot google for "Magit" is not going to know wtf a "git porcelain" is.
- agumonkey 4y agoA deceptively simple porcelain on top of git output, embedded into an emacs buffer. 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.
- kqr 4y agoIt will also tell you exactly what git command(s) it executed in response to your actions and let you modify actions with shortcuts for git command-line flags, and you can easily run your own git commands. The seamlessness between the command line and the magit UI is another of its strengths.
- agumonkey 4y agogood point I don't think I recall a time where magit interfered with the semantics
- School-Cotton 4y ago“Porcelain” in this sense seems to be a very niche term used only by Git enthusiasts. I think it just means the same thing as a “git UI”.
- agumonkey 4y agoIt was trendy few years ago, and it's a general idea, it's a bit like jquery progressive enhancement over a webpage, you don't change the whole UX, you just complement/enhance the parts slightly. 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.