Magit
A complete text-based Git interface that runs inside GNU Emacs.
These buttons open the developer's own site, repository or store listing in a new tab. wares.gg does not host downloads.
About Magit
Magit is a text-based interface to Git inside Emacs. It shows repository status in a form similar to Git's own output, but every item is actionable. Short mnemonic key sequences stage hunks, commit, rebase and handle more elaborate tasks, and the view refreshes automatically.
Magit runs ordinary Git commands in the background and can show you exactly which ones it ran, which helps you learn the command line. Companion packages such as Forge add work with Git forges. Detailed manuals are available.
Strengths
- Every piece of displayed information is actionable
- Supports advanced Git features through mnemonic keys
- Can show the Git commands it runs
- Thorough manuals and reference card
Limitations
- Requires GNU Emacs
- Keyboard-driven interface takes time to learn
Details
- Pricing
- FreeFree and open source, funded by sponsorships.
- License
- Open source, license not stated
- Developer
- The Magit contributors
- Platforms
- Windows, macOS, Linux
- How it runs
- Downloadable app
- Account
- Not required
- Works offline
- Yes
- Best suited for
- Emacs users who want a fast, full Git interface
- Categories
- Code editors, Git clients
- Last verified
- Added
- Provenance
- Facts checked against the developer's own pages and store listings, 1 sources on file.
Alternatives to Magit
Compare allSoftware that can replace Magit for an important use case, and what changes if you switch.
Neogit
An interactive Git interface for Neovim, modelled on Emacs Magit.
Neogit brings a Magit-modelled, keyboard-driven Git interface to Neovim, so you switch editors from GNU Emacs to Neovim to keep the same workflow.
Gitu
A terminal user interface for Git, written in Rust and inspired by Emacs Magit.
Gitu offers a Magit-style workflow and familiar keybindings in a standalone Rust terminal app, without Emacs, though some Magit features are still missing.
fugitive.vim
A Vim plugin that runs Git commands and handles staging, blame and diffs inside the editor.
fugitive.vim moves Git work into Vim with the :Git command and staging, blame and diff views, and assumes you already know Git commands.
lazygit
A terminal interface for Git that makes staging chunks, interactive rebase and stashing things you actually do.
lazygit is a standalone MIT-licensed terminal interface with line staging and list-based interactive rebase, so you no longer need Emacs but must learn new keybindings.
GitUI
A terminal interface for git that is fast on huge repositories and controlled entirely from the keyboard.
GitUI is a standalone MIT-licensed terminal interface that is fast on huge repositories and stages by line, though interactive rebase support is limited.
tig
Browse Git history and stage changes in a terminal interface.
tig is a standalone GPL-2.0 terminal interface for history browsing and chunk-level staging, which replaces Emacs with any suitable terminal environment.
Magit as an alternative
Listings that name Magit as an alternative.
GitLens
A Visual Studio Code extension that adds blame, commit history and commit graph views.
Magit is a free open-source Git interface inside GNU Emacs covering advanced Git features, which requires moving from VS Code to Emacs.
Similar software
Related functionality, not necessarily a direct replacement.
Git
A free and open-source distributed version control system for projects of any size.
Flog
A Git branch graph viewer plugin for Vim and Neovim that works with fugitive.
Diffview.nvim
A Neovim plugin for cycling through diffs of all modified files for any Git revision.
forgit
A shell plugin that makes common Git commands interactive through the fzf fuzzy finder.