Magit
Magit is a text-based Git interface implemented as an Emacs package.
What Magit is
Magit is a text-based Git interface implemented as an Emacs package. Its status buffer summarizes repository details such as the current branch, unpulled and unpushed changes, and staged or unstaged work. Users can stage or unstage entire files, individual hunks or selected parts of a hunk, and create or edit commits with amend, squash and fixup workflows. Magit supports common operations including logging, cloning, pushing, merging, rebasing, cherry-picking, reverting and blaming. It runs Git commands and can show the commands it invokes, then refreshes relevant buffers after commands that may alter repository state. The companion Forge package connects to GitHub and GitLab to fetch issues, pull requests and other data through their APIs; it cannot provide GitLab notifications because that API does not expose them. Magit is free for Linux, macOS and Windows, and is available through MELPA and MELPA Stable. Its manual says basic Emacs skills and prior Git and Emacs experience are needed to make full use of it, and notes that it does not wrap every Git command.
Good
- Status buffer displays branch and staged or unstaged changes.
- Stage whole files, hunks or selected hunk parts.
- Commit workflows include amend, squash and fixup.
- Free package for Linux, macOS and Windows.
Watch out
- Requires basic Emacs skills and prior Git experience.
- Does not wrap every Git command.
- Buffer refreshes from scratch can be slow in large repositories.
Who it suits
Magit suits people who already use Emacs and Git and want to handle many version-control tasks from within Emacs. Its companion Forge package may suit users who want GitHub or GitLab issues and pull requests there as well.
Verdict
Magit brings many daily Git tasks into Emacs, with detailed staging and commit controls. It is a better fit for users comfortable with Emacs; the manual notes some Git commands remain outside its coverage.
Plans and prices
From Magit's own pricing page, checked 9 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Magit | Free | Emacs package · installed through Emacs’ package manager or from its development repository |
The facts
Each one read from Magit's own pages, with the date it was checked.
What it does
- Commit support
- Magit supports creating and editing commits, including amend, squash, and fixup workflows.checked 8 Oct 2026
- Forge integration
- The companion Forge package works with GitHub and GitLab from Magit and Emacs, fetching issues and pull requests through the forge API.checked 9 Oct 2026
- Forge integrations
- The companion Forge package works with GitHub and GitLab to fetch issues, pull requests, and other data through their APIs.checked 8 Oct 2026
- Forge support limits
- Forge documents two supported forges, three partially supported forges, and four semi-forges; partial support covers functionality that does not require the API.checked 9 Oct 2026
- Git operations
- Documented operations include logging, cloning, pushing, merging, rebasing, cherry-picking, reverting, and blaming.checked 9 Oct 2026
- Installation
- Magit is available through the MELPA and MELPA Stable package archives.checked 8 Oct 2026
- Integration limitation
- Forge cannot provide GitLab notifications because the GitLab API does not expose them.checked 8 Oct 2026
- License
- The Magit manual is distributed under the GNU General Public License version 3 or later.checked 9 Oct 2026
- Live status
- The status buffer shows repository information including the current branch, unpulled and unpushed changes, and staged and unstaged changes.checked 9 Oct 2026
- Performance
- The manual notes that refreshing buffers from scratch can be slow in large repositories.checked 9 Oct 2026
- Product
- Magit is a Git interface implemented as an Emacs package.checked 9 Oct 2026
- Purpose
- Magit is a complete text-based interface to Git implemented as an Emacs package.checked 8 Oct 2026
- Refresh
- Magit refreshes its current buffer and the repository status buffer after commands that may change repository state.checked 9 Oct 2026
- Requirements
- The manual says users need basic Emacs skills and some prior experience with both Git and Emacs to make full use of Magit.checked 9 Oct 2026
- Safety
- Potentially destructive commands often require confirmation, and optional work-in-progress modes can save tracked files to recovery references.checked 9 Oct 2026
- Scope
- It supports most daily Git version control tasks within Emacs, while its manual says it does not yet wrap every Git command.checked 9 Oct 2026
- Staging
- Users can stage or unstage files, hunks, or part of a hunk from the status buffer.checked 9 Oct 2026
- Status view
- Magit presents actionable Git information in status buffers and refreshes the output when it becomes outdated.checked 8 Oct 2026
- Support
- The project directs users to its FAQ, manual, issue tracker search, Emacs Stack Exchange, Reddit, and GitHub Discussions, and asks users not to use GitHub issues for support requests.checked 9 Oct 2026
- Workflow
- Magit runs Git commands and can show users the commands it runs.checked 8 Oct 2026
Alternatives to Magit
- 1

Unity
Free planAndroidiOSWebAPI8.4Free plan - 2

Unity Version Control
Free planWebAPILinuxmacOS8.1Free plan - 3

Perforce P4 (Helix Core)
Free planWebAPILinuxmacOS7.9From $39 a month - 4

Diversion
Free planWebAPILinuxmacOS7.8From $25 a month - 5

GitHub CodeQL
Free planWebExtensionLinuxmacOS7.5From $30 a month - 6
GitUI
Free planOpen sourceAndroidLinuxmacOSSelf-hosted7.5Free plan
