Work with Git Forges from Magit
github.com
github.com
What I'm saying is, I'm quite productive with git already, is magit really the next level?
I prefer magit because it is well integrated into the editor itself, while mimicking the command line git as closely as possible. Magit allows me to use git from a GUI/TUI without the fear of forgetting the command line tool.
Meanwhile, there is another tool that deserves special mention for interactive staging - (neo)vim's fugitive. It treats the working copy and the index as two buffers and opens them in diff mode. You can compare the two versions directly as plain text, instead of as formatted diffs like in case of magit. Staging as simple as using diffput, diffget, etc.
It's incredibly flexible, but here are some things that I do all the time in Magit that I hesitate to do when I'm just using the cli:
- stage individual lines from a hunk
- rebase fearlessly
- resolve merge conflicts
- view the list of all commits that touched a file
- view a file from the above list at a point in time next to the current version
- name my stashes!
All of these are possible from the cli or other git uis, but they are very discoverable using Magit - I didn't even know you could name stashes until I was prompted for a name while stashing. And Magit will happily log all the actual git commands that it runs, so if you're curious how it works you can easily peak behind the curtain.
The UX/UI is also just super intuitive and fast. Rather than tediously typing out a long command (let's be honest, a lot of Git commands can be), it's cut down to a very short string of keys.
Personally, Magit is the best Git UI I've ever used. It can do basically everything the official CLI can, so you're not missing out due to an added abstraction, like most Git UIs suffer from.