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[8] — serving as a mnemonic aid.[9]
History
Magit was created by Marius Vollmer in 2008,[10]
with Jonas Bernoulli assuming the role of maintainer in 2013.[11]
Since its release, Magit has seen a high degree of community involvement, with 350 individuals[12]
having contributed code to this free software project as of September 2020.
In 2018 Magit underwent a Kickstarter funding campaign[13] 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.[14] 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.[15]
Functionality
Magit aims to encapsulate the entire functionality of Git,[16] and has interfaces for workflows such as:[17]
Cloning a repository, and fetching/pulling from it
Staging, unstaging, and discarding changes in the worktree
Listing topics, issues, pull-requests, notifications, and repositories
Creating issues, pull-requests (PRs), PR from an issue, PR reviews, and forks
Reception
Magit is favourably covered in a number of blog posts and tutorials and a talk delivered by former Emacs' maintainer John Wiegley.[21][22][23]
Magit is included by default in the Emacs configuration frameworks Spacemacs and Doom Emacs.[24][25]
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.[26]
As of February 2023, Magit is the most starred Emacs package on GitHub.[27]