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

Magit is mind blowing.

How did the magit guy or people even come up with the data model? Always had the feeling that it went beyond the git data model. And git porcelain is just a pile of shards.



> How did the magit guy or people even come up with the data model?

It's not all that different from a typical TUI interface.

Magit isn't great because of the interface. It's great because the alternative (plain git) has such a crappy interface. Contrast principle and all.


Magit is pretty great because of transient, the model of showing what all the commands are. It's a very natural and easy UI affordance


Transient was factored out much later. It's not just transient that makes magit great, though. It's the only alternative porcelain for git that I'm aware of and one that makes git both easier to use and understand. I'm the "git guy" at every place I've worked but I owe it all to magit. Other git frontends just do the CLI stuff with point and click, they don't help you understand what's going on at all.


> Magit is pretty great because of transient, the model of showing what all the commands are.

And that's different from many TUIs how?


Is magit much better than tig? I've never used magit.


If you’re still using tig, have a look at lazygit. Needs some getting used to (coming from tig) but supports way more git features.


Same, love lazygit. My only issue is that I find it too centered around qwerty keyboard... which is small.


For reference, I did use Magit for my short stint with Emacs (and then Spacemacs/Doom Emacs). I've always been more into Vim. I tried the Atom editor several years ago with lots of Vim emulation and quite a bit of customization - one of those being a Magit clone.

I moved to NeoVim many years ago and have been using NeoGit (a supposed Magit clone) the entire time. It's good but I'm missing the "mind blowing" part. I'd love to learn more though! What features are you using that you consider amazing?


I found Neogit quite buggy. Not even in the same league as Magit.


It's mind-blowing because it makes git actually usable.


Maybe it's Stockholm syndrome for me, but I never really understood what was so unusable about the vanilla command line git interface.

If you want to do some really advanced stuff, sure it's a little arcane, but the vast majority of stuff that people use in git is easy enough. Branching and committing and merging never seemed that hard to me.


> Maybe it's Stockholm syndrome for me, but I never really understood what was so unusable about the vanilla command line git interface.

I'm as hardcode CLI user as it gets, I've only lived in the CLI since the mid 80s and still firmly there.

git is the absolute worst CLI ever in the history of humanity.


Wnen I do anything more than commit/push/pull at the command line I will quickly get myself so confused that I end up deleting the directory and cloning it again. That doesn't happen to me (much) with magit.


Fair enough. I feel like I do a fair amount of the more advanced features (interactive add and rebase, bisect, worktrees) without any fancy tooling and I don't have a problem much anymore, but admittedly they did confuse me at first.


i don't remember confusion. i find it's mostly understanding the data model and in particular the branches and references/reflog. when i am worried i might break something then i tag the the checkout where i am at and i know i can always revert to that. i also compare the original with the new state. i usually know what that diff should look like, and even if the operations in between are confusing, if the diff looks like what i expect then i know it went all right. trust the process but verify the results.

the big thing i am missing from it is a branch history. a record for every commit to which branch it once belonged to. no improved interface can fix that. that would have to be added to the core of git.


imo git does a terrible job of showing its state so when anything more complicated than committing changes you really have to have thing internalized.


I don't know but I didn't find as intuitive as lazygit




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

Search: