Rebasing in Magit

Overall sentiment on Magit

  • Many commenters describe Magit as exceptionally powerful, especially for complex history editing (rebasing, fixups, splitting/squashing commits, line-level staging).
  • Several say Magit is the main reason they stick with Emacs or one of the few tools that genuinely changed their Git workflow.
  • A minority find its rebasing UI confusing and mainly value it for reviewing/staging diffs.
  • Some note that Magit makes Git concepts more “discoverable” via contextual popups and single-key commands.

Emacs as Barrier to Adoption

  • A recurring theme: Magit’s dependency on Emacs severely limits adoption; many don’t want to learn or maintain Emacs just for Git.
  • Some Emacs users report repeatedly failing to convince colleagues to try Magit, even when offering VS Code clones (e.g., edamagit).
  • There’s also caution against “pushing” Emacs onto uninterested coworkers because it creates support burdens.

Comparisons to Other Tools & Workflows

  • Alternatives praised: GitUp (Mac-only), LazyGit, jj/jjui, majutsu (Magit-like for jj), neogit (Neovim), fugitive (Vim), gitu, IDE integrations, Fork, tig, git cola/gitk/git-gui.
  • Some argue GitUp or LazyGit offer faster or more intuitive commit manipulation (move/squash via simple keys) and that Magit doesn’t surpass that for common tasks.
  • Others insist nothing matches Magit’s workflow and speed once mastered, especially for granular staging and complex rebases.
  • Several prefer plain Git CLI with a few aliases, claiming wrappers add little or have betrayed trust in the past.

Performance Issues

  • Complaints that Magit status can be several seconds slower than git status, especially in large repos.
  • Others respond that Magit runs many extra Git commands and recommend disabling specific status sections or profiling to speed it up.

Emacs Performance & Architecture

  • Long subthread on Emacs being slower to start and more sluggish than Neovim/Sublime, with benchmarks.
  • Mitigations: running Emacs as a daemon, tuning GC, using experimental incremental GC branch, trimming configs.
  • Debate over whether shared global state and single-threaded design are fundamental limitations or acceptable trade-offs.

UI Philosophy & Learning Curve

  • Magit’s key-discovery model is compared to old Lotus 1-2-3 style prompts: stepwise, hint-driven, then internalized as “incantations.”
  • Some see this as elegant; others say the key sequences look intimidating and mask underlying complexity rather than removing it.