Thursday, October 29, 2026 4,523 lists 78,992 records on file
List your app or device

  1. Home
  2. Version Control Software
  3. Magit

Magit

What it is

Magit is a free, text-based Git interface implemented as an Emacs package. It handles many everyday version-control tasks, including logging, cloning, pushing, merging, rebasing, cherry-picking, reverting, and blaming, though its manual says it does not yet wrap every Git command. Its status buffer shows the current branch, unpulled and unpushed changes, and staged and unstaged work. Users can stage or unstage whole files, hunks, or selected parts of a hunk, and create or edit commits with amend, squash, and fixup workflows. Magit runs Git commands and can show the commands it invokes; it refreshes buffers after operations that may change repository state. The companion Forge package retrieves issues, pull requests, and other data through GitHub and GitLab APIs, but cannot provide GitLab notifications because that API does not expose them. Magit is available for Linux, macOS, and Windows through MELPA and MELPA Stable. Its manual says full use requires basic Emacs skills and prior experience with both Git and Emacs.

For and against

For

  • Shows branch and staged and unstaged changes in a status buffer.
  • Stage or unstage files, hunks, or selected hunk parts.
  • Supports amend, squash, and fixup commit workflows.
  • Available for Linux, macOS, and Windows.

Against

  • Does not yet wrap every Git command.
  • Refreshing from scratch can be slow in large repositories.
  • Forge cannot provide GitLab notifications.

The verdict

Magit brings a broad set of Git operations into Emacs and exposes repository state in an actionable status buffer. Its scope and learning requirements make prior experience with both Emacs and Git important.

Who it suits

Magit suits people who already work in Emacs and want to handle Git tasks within it. The manual recommends basic Emacs skills and some prior experience with Git and Emacs.

Plans and prices

Magit

Free

Emacs package · installed through Emacs’ package manager or from its development repository

Every plan, in full

On the record

Commit support
Magit supports creating and editing commits, including amend, squash, and fixup workflows.docs.magit.vc · read 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.docs.magit.vc · read 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.docs.magit.vc · read 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.docs.magit.vc · read 9 Oct 2026
Git operations
Documented operations include logging, cloning, pushing, merging, rebasing, cherry-picking, reverting, and blaming.docs.magit.vc · read 9 Oct 2026
Installation
Magit is available through the MELPA and MELPA Stable package archives.docs.magit.vc · read 8 Oct 2026
Integration limitation
Forge cannot provide GitLab notifications because the GitLab API does not expose them.docs.magit.vc · read 8 Oct 2026
License
The Magit manual is distributed under the GNU General Public License version 3 or later.docs.magit.vc · read 9 Oct 2026
Live status
The status buffer shows repository information including the current branch, unpulled and unpushed changes, and staged and unstaged changes.docs.magit.vc · read 9 Oct 2026
Performance
The manual notes that refreshing buffers from scratch can be slow in large repositories.docs.magit.vc · read 9 Oct 2026
Product
Magit is a Git interface implemented as an Emacs package.docs.magit.vc · read 9 Oct 2026
Purpose
Magit is a complete text-based interface to Git implemented as an Emacs package.docs.magit.vc · read 8 Oct 2026
Refresh
Magit refreshes its current buffer and the repository status buffer after commands that may change repository state.docs.magit.vc · read 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.docs.magit.vc · read 9 Oct 2026
Safety
Potentially destructive commands often require confirmation, and optional work-in-progress modes can save tracked files to recovery references.docs.magit.vc · read 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.docs.magit.vc · read 9 Oct 2026
Staging
Users can stage or unstage files, hunks, or part of a hunk from the status buffer.docs.magit.vc · read 9 Oct 2026
Status view
Magit presents actionable Git information in status buffers and refreshes the output when it becomes outdated.magit.vc · read 8 Oct 2026

Alternatives to Magit

Every alternative, ranked