Version 4.7.2 of package Magit has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Magit describes itself as: ============================ A Git porcelain inside Emacs ============================ More at https://elpa.nongnu.org/nongnu/magit.html ## Summary: Magit is an interface to the version control system [Git], implemented as an [Emacs] package. Magit aspires to be a complete Git porcelain. While we cannot (yet) claim that Magit wraps and improves upon each and every Git command, it is complete enough to allow even experienced Git users to perform almost all of their daily version control tasks directly from within Emacs. While many fine Git clients exist, only Magit and Git itself deserve to be called porcelains. [Git] <https://git-scm.com> [Emacs] <https://www.gnu.org/software/emacs> 1 Getting Started ═════════════════ If you are new to Magit, then either one of the following two articles should help understanding how it differs from other Git clients. 1.1 [Visual Magit walk-through] ─────────────────────────────── ## Recent NEWS: # -*- mode: org -*- * v4.7.2 2026-11-07 - Tags are now shown in the logs of submodules in the status buffer of the super-repository. Additionally all unpulled tags are shown in the headings of these logs. 1c470b54, 5f6c5afa - When setting the value of a Git variable in a menu, the worktree specific value can be set or unset using a prefix argument. See https://github.com/magit/forge/discussions/831. This is still experimental. 2e92cad8 - In the log menu, the ~--authors~ argument now accepts multiple values. 7851e024 - Improved the default choice when pushing to the upstream, if that isn't configured yet. #5638 - Hi-lock is now instructed to use overlays in Magit buffers so that its highlights are not lost when refreshing such buffers. - Improved the timestamp fallbacks displayed in repository lists for repositories that lack release tags. 58a46982 - When committing ~dabbrev-capf~ is now added near the end of ~completion-at-point-functions~ to avoid shadowing other functions. #5655 - Optimized diff washing by preventing modification hooks from triggering and avoiding unnecessary buffer edits. #5656, #5659 - Added new hook ~magit-post-call-git-functions~. #5652 - Hunk fontification and refinement are now disabled when ~long-lines-threshold~ triggers. #5647 - ~magit-list-repositories~ can now be instructed (using option ~magit-repository-directories~) to include repositories nested inside other repositories. #5657 - ~magit-list-repositories~ can now list different sets of repositories depending on ~default-directory~, by setting ~magit-repository-directories~ in ~.dir-locals.el~. #5658 Bugfixes: - Fixed a regression in ~magit-stage-untracked~. #5635 - ~bug-reference-mode~ did not work in buffers used to write commit messages. fe66e74a - ~bug-reference-mode~ needed help doing its work in files located in the gitdir (which Magit uses when authoring commit messages). fe66e74a - ~magit-branch-delete~ failed to delete remote branches on remotes whose name contain a slash. #5637 - When invoked from a modified file, ~magit-status-here~ no longer jumped to the correct location. #5641 - When visiting a blob from a buffer visiting the respective file in the worktree, the position was not restored in the target buffer. - ~magit-toplevel~ did not work from a subdirectory of the gitdir of a submodule, and signaled an error from the gitdir of a regular repository, which happens to be a subdirectory of a directory named "modules". #5644 - ~magit-branch~ and ~magit-remote~ were not fully refreshed in an edge-case. #5642 - GnuPG became more verbose in some cases, which we wasn't prepared. to handle, causing failure to nicely format the output. #5643 - After adding a worktree to a bare repository, trying to create a commit from the worktree signaled an error. #5636 - The script used to call back into Emacs from Git hooks failed if the path to ~emacsclient~ needs shell quoting. #5651 - A local file was used to collect standard error of remote processes, causing an unnecessary round-trip. #5654 - In logs dedicated to selecting a commit (such as when starting a rebase), the wrong section was highlighted initially. #5653 - On remote systems and when ~with-editor-emacsclient-executable~ is ~nil~, no longer try to call back from Git hooks into Emacs, which cannot work. #5592 - When Git hooks are configured to call back into Emacs, and using an ~windows-nt~ Emacs together with Cygwin, members of ~$PATH~ were not translated, and the wrong path separator was used. #5640 - In Emacs 31.1, Tramp changed/extended how it filters out environment variables, that should be hidden from processes on the remote. This caused a variable to be filtered out, that must remain set for Magit to not drop data when creating a stash. We now hold the variable as is expected from us, and added a safety-net, which asserts that the variable indeed remains set. #5660 ... ...
