Magit
This article, Magit, has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Inform author |
This article, Magit, has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Inform author |
This article, Magit, has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Inform author |
Comment: None of the references that you provided are independent of the subject. Jackmcbarn (talk) 21:56, 16 September 2020 (UTC)
Original author(s) | Marius Vollmer |
---|---|
Developer(s) | Jonas Bernoulli, Kyle Meyer, and Noam Postavsky |
Stable release | 2.90.1[1]
/ November 16, 2018 |
Repository | github |
Written in | Emacs lisp |
Type |
|
License | GNU GPLv3 |
Website | magit |
Magit is an interface to the Git version control system (a Git Client), implemented as an GNU Emacs package[2][3] written in Elisp. It is made available through the MELPA package repository[4], on which it is the most-downloaded non-library package, with two and a half million downloads as of September 2020[5].
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[6] — serving as a mnemonic aid[7].
History
Magit was created by Marius Vollmer in 2008,[8] with Jonas Bernoulli assuming the role of maintainer in 2013.[9] Since its release, Magit has seen a high degree of community involvement, with 316 individuals[10] having contributed code to this free software project as of September 2020.
In 2018 Magit underwent a Kickstarter funding campaign[11], and is currently the 27th most funded software project on Kickstarter[12].
Functionality
Magit aims to encapsulate the entire functionality of Git[1]. As such, Magit includes interfaces for[13]
- 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,[14] namely GitHub and GitLab.[15]
Partial support is also listed for: Gitea, Gogs, Bitbucket, Gitweb, Cgit, StGit, and Sourcehut.
Forge currently allows for[16]
- 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
Reception
There has been interest in including Magit in Emacs, but there are issues with obtaining FSF copyright assignment from all contributors to the project.[17]
Magit is favourably covered in a number of blog posts and tutorials[18][19] and a a talk delivered by Emacs' current maintainer[20].
Magit is included by default in the Emacs configuration frameworks Spacemacs[21] and Doom Emacs[22]
As of September 2020, Magit is the most starred Emacs package on GitHub[23].
See also
Notes
References
- ^ a b Bernoulli, Jonas. "It's Magit! A Git Porcelain inside Emacs". magit.vc. Retrieved 2020-09-16.
- ^ Corbet, Jonathan (July 12, 2017). "Emacs and Magit". LWN.net.
- ^ "EmacsWiki: Magit". Retrieved 2020-09-17.
- ^ "magit". Milkypostman’s Emacs Lisp Package Archive. Retrieved 2020-09-20.
- ^ "Current List of Packages". Milkypostman’s Emacs Lisp Package Archive. Retrieved 2020-09-20.
- ^ "Transient commands". GitHub. Retrieved 2020-09-17.
- ^ Bernoulli, Jonas (2017-09-01). "Magit, the magical Git interface". EmacsAir.
- ^ "magit/magit.el". GitHub. Retrieved 2020-09-17.
- ^ "Magit 1.4.0 Release Notes". GitHub. 2015-07-01. Retrieved 2020-09-20.
- ^ "GitStats - lib". magit.vc. Retrieved 2020-09-19.
- ^ "It's Magit! The magical Git client". Kickstarter.
- ^ "Discover » Technology / Software » Most Funded — Kickstarter". Retrieved 2020-09-17.
- ^ "Top (Magit User Manual)". magit.vc.
- ^ Heartman, Thomas. "Improve your workflow with Forge".
- ^ "Forge User and Developer Manual". magit.vc.
- ^ "Usage (Forge User and Developer Manual)". magit.vc.
- ^ Stallman, Richard (5 July 2017). "Re: In support of Jonas Bernoulli's Magit". emacs-devel (Mailing list). Retrieved 2020-09-19.
- ^ Patil, Sachin. "How to use Magit to manage Git projects". opensource.com.
- ^ Bachmann, Gunther. "Magit – A textual git interface". itemis.
- ^ Wiegley, John. "It's Magit!". YouTube.
- ^ "Spacemacs - source control layer". GitHub. Retrieved 2020-09-19.
- ^ "Doom Emacs - default modules file". GitHub. Retrieved 2020-09-19.
- ^ "GitHub Search for "stars:>1000", Emacs lisp, sorted by most stars". GitHub. Retrieved 2020-09-19.