Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What is Magit?


A 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.


It 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.


good point

I don't think I recall a time where magit interfered with the semantics


“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”.


It 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.


It'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.


I 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.


>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.


just 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.


Is 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.


"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.


The homepage of the website explains it well, as homepages should:

https://magit.vc/


A Git Porcelain inside Emacs


Someone who cannot google for "Magit" is not going to know wtf a "git porcelain" is.


Had exactly same question




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: