Top Qs
Timeline
Chat
Perspective

Magit

Emacs interface for the Git version control system From Wikipedia, the free encyclopedia

Magit
Remove ads

Magit (/ˈmædʒɪt/ MA-jit or /ˈmʌɡɪt/ MUH-git[2]) is an interface to the Git version control system, available as a GNU Emacs package[3][4] written in Emacs Lisp. It is available through the MELPA package repository,[5] on which it is the most-downloaded non-library package, with over 4.3 million downloads as of September 2024.[6]

Quick Facts Original author(s), Developer(s) ...

Like many graphical user interfaces, Magit provides a visual interface to represent version control actions; however, it uses a keyboard-centric model, and also functions as a text-based user interface.[a] The issue of key-memorization is mitigated through use of a popup menu which displays the actions available to the user[7] — serving as a mnemonic aid.[8]

Remove ads

History

Magit was created by Marius Vollmer in 2008,[9] with Jonas Bernoulli assuming the role of maintainer in 2013.[10] Since its release, Magit has seen a high degree of community involvement, with 350 individuals[11] having contributed code to this free software project as of September 2020.

In 2018 Magit underwent a Kickstarter funding campaign[12] which aimed to fund the maintainer for a year of work. The fundraising was successful and resulted in the project being the 27th most funded software project on Kickstarter.[13] Since the Kickstarter funded period expired donations are encouraged to support the authors development via direct payments, GitHub's sponsorship program and various other crowdfunding services.[14]

Remove ads

Functionality

Thumb
A Magit buffer displaying the Emacs git repository's log

Magit aims to encapsulate the entire functionality of Git,[15] and has interfaces for workflows such as:[16]

  • Cloning a repository, and fetching/pulling from it
  • Staging, unstaging, and discarding changes in the worktree
  • Creating commits and pushing them to a remote
  • Creating branches, and either merging or rebasing onto them
    • Magit makes use of Emacs' Ediff to provide 3-way-merge functionality
  • Browsing and bisecting the commit history
  • Creating and applying patches
  • Adding notes and tags to commits

Forges

Magit's Forge provides integration with a number of forges,[17] namely GitHub and GitLab.[18]

Partial support is also listed for: Gitea, Gogs, Bitbucket, Gitweb, Cgit, StGit and SourceHut.

Forge currently allows for[19]

  • Fetching topics and notifications
  • Listing topics, issues, pull-requests, notifications, and repositories
  • Creating issues, pull-requests (PRs), PR from an issue, PR reviews, and forks
Remove ads

Reception

Magit is favourably covered in a number of blog posts and tutorials and a talk delivered by former Emacs' maintainer John Wiegley.[20][21][22]

Magit is included by default in the Emacs configuration frameworks Spacemacs and Doom Emacs.[23][24]

There has been interest in including Magit as a built-in feature package in Emacs, but there are issues with obtaining FSF copyright assignment from all contributors to the project.[25]

As of February 2023, Magit is the most starred Emacs package on GitHub.[26]

See also

Notes

  1. In part this is a consequence of being designed for GNU Emacs, which itself can operate as a TUI.

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads