magit 
- Description
- A Git porcelain inside Emacs
- Latest
- magit-4.5.0.0.20260422.220622.tar (.sig), 2026-Apr-23, 1.94 MiB
- Maintainer
- Jonas Bernoulli <emacs.magit@jonas.bernoulli.dev>, Kyle Meyer <kyle@kyleam.com>
- Website
- https://github.com/magit/magit
- Browse ELPA's repository
- CGit or Gitweb
- All Dependencies
- compat (.tar), cond-let (.tar), llama (.tar), magit-section (.tar), seq (.tar), transient (.tar), with-editor (.tar)
- Badge
- Manual
- magit
To install this package from Emacs, use package-install or list-packages.
Full description
Magit is a text-based Git user interface that puts an unmatched focus on streamlining workflows. Commands are invoked using short mnemonic key sequences that take the cursor’s position in the highly actionable interface into account to provide context-sensitive behavior. With Magit you can do nearly everything that you can do when using Git on the command-line, but at greater speed and while taking advantage of advanced features that previously seemed too daunting to use on a daily basis. Many users will find that by using Magit they can become more effective Git user.
Old versions
| magit-4.5.0.0.20260422.162703.tar.lz | 2026-Apr-22 | 325 KiB |
| magit-4.5.0.0.20260416.125931.tar.lz | 2026-Apr-16 | 325 KiB |
| magit-4.5.0.0.20260415.223343.tar.lz | 2026-Apr-16 | 325 KiB |
| magit-4.5.0.0.20260409.85727.tar.lz | 2026-Apr-09 | 323 KiB |
| magit-4.5.0.0.20260331.204543.tar.lz | 2026-Apr-01 | 322 KiB |
| magit-4.5.0.0.20260130.150530.tar.lz | 2026-Jan-30 | 317 KiB |
| magit-4.4.2.0.20251227.224744.tar.lz | 2025-Dec-28 | 317 KiB |
| magit-4.0.0.0.20240830.211722.tar.lz | 2024-Aug-31 | 282 KiB |
| magit-3.3.0.50snapshot0.20240808.120842.tar.lz | 2024-Aug-08 | 299 KiB |
| magit-3.2.1.0.20211001.214957.tar.lz | 2021-Oct-02 | 285 KiB |
News
# -*- mode: org -*- * v4.6.0 UNRELEASED The primary focus of this release are blob-visiting buffers. For now the hope is that most users will find working with such buffers slightly more pleasant, without necessarily becoming aware that anything changed. The goal was to pay off technical debt and to prepare for future changes. - Visiting blobs now always involves ~magit-find-file-noselect~, even when an existing buffer may be involved. The behavior of this function is getting closer to that of ~find-file-noselect~. - Implemented support for visiting blobs for the benefit of features such as syntax-highlighting, as opposed to the user visiting it explicitly. Such "volatile" blob buffers are hidden and are cached for a while, in case they are needed again. If the user visits a hidden cached blob, the buffer is renamed to reveal it and it is no longer subject to garbage collection. - Blobs can now alternatively be visited with nothing but a blob object id (instead of a revision and a path). - Blob-visiting buffers can now be reverted with ~g~, which is useful when the buffer is visited via, e.g., a branch, as opposed to a revision or blob object id. The buffer is not needlessly refreshed, if the blob oid does not change. dd48491659, f55bfaf792, cf84935a74 - Syntax highlighting can now be enabled for diffs. This is disabled by default, because the work is still being performed synchronously, which leads to noticeable delays for large diffs and can be sluggish even for smaller diffs. #2942, c7b0342dc7 A future release is going to add support for asynchronous diff syntax highlighting. (The blob buffer cache added in this release does help, but is not enough.) Configure ~magit-diff-fontify-hunk~ to try out this feature now, but please just disable it again, if it turns out to still be too slow for your taste. If you enable this, you should also customize the new option ~magit-diff-specify-hunk-foreground~ and possibly the new option ~magit-diff-use-indicator-faces~ as well. - Added new hook ~magit-find-blob-hook~, which replaces the old hooks ~magit-find-file-hook~ and ~magit-find-index-hook~. The new hook is run when first visiting a blob as the old hooks used to do, but also when reverting a blob buffer. fc29202838, 999047889c - ~magit-find-file-noselect~ now pivots to the worktree file when asked to visit the index blob, but that has multiple stages, due to an unresolved conflict. This likely will be revisited. a2165a0ba7 - Added support for compiling a list of definitions that are modified in a diff, and for inserting such lists when authoring commit messages. The new commands ~git-commit-insert-changelog-gnu~ and ~git-commit-insert-changelog-plain~ insert such list and can be invoked from the same menu (on ~C-c C-i~), which is used to insert commit trailers. #2931, 863f1aa6fe, 46b7f76df3 - Improved support for jumping to the same location in another blob, from a buffer visiting a blob or file. 87090491d4 - Reworked ~magit-buffer-*~ variables. Many were renamed (but the old names are still available as obsolete aliases). Others that were previously shared by multiple modes were replaced with mode-specific variants. 298218fa85~..7bfc458065 - When authoring commit messages, ~complete-symbol~ now completes against modified definitions and symbols appearing in modified lines. 2366db4b3b - Thanks to the improvements to ~magit-find-file-noselect~ and the blob buffer cache, Ediff support could be simplified considerably. - If it is part of an Ediff session, quitting a blob-visiting buffer would corrupt that session, so teach ~magit-bury-or-kill-buffer~ and ~magit-bury-buffer~ to instead offer to completely quit the session. 29c6241993 - Commands that currently cannot be used are now explicitly disabled in the ediff menu. 3125b51ede - Provided ~magit-delete-by-moving-to-trash~ is ~nil~, ~magit-worktree-delete~ is faster now. #5504 ... ...