magit 
- Description
- A Git porcelain inside Emacs
- Latest
- magit-4.6.0.0.20260720.55.tar (.sig), 2026-Jul-21, 1.99 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.6.0.0.20260718.46.tar.lz | 2026-Jul-18 | 337 KiB |
| magit-4.6.0.0.20260717.42.tar.lz | 2026-Jul-17 | 336 KiB |
| magit-4.6.0.0.20260711.37.tar.lz | 2026-Jul-11 | 336 KiB |
| magit-4.6.0.0.20260709.30.tar.lz | 2026-Jul-10 | 336 KiB |
| magit-4.6.0.0.20260701.0.tar.lz | 2026-Jul-01 | 334 KiB |
| magit-4.5.0.0.20260630.312.tar.lz | 2026-Jun-30 | 334 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.1 UNRELEASED - If the region marks a single commit, ~magit-patch-create~ now creates a patch for that, instead of prompting. Previously that was only done if multiple commit were marked. #4734 - When reading a value for ~git diff~'s ~--find-renames~ or ~--find-copies~ argument, the similarity index can now be specified as a percentage or as a fraction. The input now has to exactly match the value, as used by Git; e.g., "20%" or "05". The latter is interpreted as the fraction 0.05. #4708 - Added optional DIRECTORY argument to ~magit-status-quick~, intended for use in third-party repository switchers. #4636 - Added new command ~magit-log-reflog~, which shows the log for all objects mentioned in all reflogs. #4748 - When ~gpg.format~ specifies a format other than openpgp, the menu argument ~--gpg-sign~ now acts as a boolean toggle. Previously it always wanted to read an openpgp key, making it impossible to toggle ssh or x509 signing from the menu. The used format is now shown in the menu. #5046 - Added ~--reject~ to ~magit-am~ menu. #5148 - Added Git v2.55's new ~--graph-lane-limit~ to log menus. It is hidden by default and not available when using an older Git. #5088 - ~magit-file-untrack~, ~magit-file-rename~, ~magit-file-delete~ and ~magit-do-async-shell-command~ can now act on directories. #5247 - ~magit-process-kill~ now first tries to interrupt the process. If that fails, a second invocation instead kills it. #5086 - Added help text for the ~Filter!~ status section. #5121 - By default, submodules with untracked content are now also listed in the status of the super-repository. #5448 - Added ~--redit-message~ to the ~magit-commit~ menu. That argument and ~--reuse-message~ now usually default to the commit at point, but when invoked with a prefix argument, the user can instead select the commit from a log. #5602 - Added new option ~magit-submodule-list-predicate~ and taught ~magit-submodule-list~ to support unpopulated modules. #5077 - When ~magit-bisect-start~ and ~magit-bisect-run~ are invoked with the region marking a range of consecutive commit, the commits at the ends are used as the good and bad commits. #5049 - ~magit-branch-checkout~ now always passes the commit, which is to be checked out, to the function used to read the worktree directory from the user. Previously this was only done for local branches. #5502 - Added new command ~magit-checkout-remote-ref~. #5410 - ~magit-project-status~ is no longer added to ~project-switch-commands~. See the command's docstring to learn how to add it yourself. - Added new command ~magit-project-dispatch~. #5163 - Added new option ~magit-revision-use-dedicated-buffers~. #5330, #5248 - Added new function ~magit-insert-nested-repositories~. #5336 - With a prefix argument ~magit-diff-buffer-file~ now only shows unstaged changes. #5013 - Added new command ~magit-copy-diff-as-kill~. #5595 - Added new command ~magit-parent-status~. #5022 - If upstream itself is not reachable, ~magit-commit-absorb~ and ~magit-commit-autofixup~ now conveniently place the cursor on the merge-base of that and HEAD, instead of on HEAD. #5579 Bugfixes: - ~magit-ignore-submodules-p~ didn't return ~nil~ for ~none~. - Fixed regressions in ~magit-ediff-resolve-rest~. #5603 - ~magit-bisect-start~ and ~magit-bisect-run~ insisted on the good commit being an ancestor of the bad, but ~git bisect~ only requires a merge- base. #5238 * v4.6.0 2026-07-01 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 ... ...