Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
It's Magit! A Git Porcelain inside Emacs.
Emacs Lisp Makefile
branch: next
Failed to load latest commit information.
Documentation Merge branch 'master' into next
t bump copyright years
.gitignore Makefile: output stats locally by default
.mailmap update list of contributors
.travis.yml fight travis once more update list of contributors Fix some typos in the CONTRIBUTING document
Makefile git-rebase.el depends on Magit now adjust minimal Emacs version
git-commit.el when committing, always save to message ring
git-rebase.el Merge pull request #1814 from kyleam/n/rebase-bare-comment
magit-apply.el avoid needlessly loading optional libraries
magit-backup.el avoid needlessly loading optional libraries
magit-bisect.el autoload popups
magit-blame.el don't spam "revert inhibited" in blame mode
magit-commit.el require at least version 24.4 of Emacs
magit-core.el put popup options in correct groups, suppress unnecessary options
magit-diff.el stop expanding diffs after a customizable treshold
magit-ediff.el autoload popups
magit-extras.el magit-run-git-gui: cosmetics
magit-git.el magit-file-relative-name: fix for W32 with Cygwin
magit-log.el use more semantic colors for reflog faces
magit-mode.el define some hook variables as custom options
magit-pkg.el require at least version 24.4 of Emacs
magit-popup.el require at least version 24.4 of Emacs
magit-process.el unset mode-line indicator in for all processes
magit-remote.el autoload popups
magit-section.el magit-section-show: correctly detect partial washes
magit-sequence.el rename magit-rebase-onto to magit-rebase-from
magit-stash.el avoid needlessly loading optional libraries
magit-utils.el separate hunk region painting and section highlighting
magit-wip.el add and extend library commentaries
magit.el magit-find-file-noselect: reuse existing buffer
with-editor.el make with-editor--pid buffer-local as always intended

Build Status Gratipay

It's Magit! A Git Porcelain inside Emacs

The Magit wiki contains a list of FREQUENTLY ASKED QUESTIONS, please do consult it.

Magit is in FEATURE FREEZE, keep that in mind when making feature requests.

Magit is an interface to the version control system Git, implemented as an Emacs package.

Unlike the VC package which is part of Emacs and strives to provide a unified interface to various version control systems, Magit only supports Git and can therefore better take advantage of its native features.

Magit 2.0.50 requires at least GNU Emacs 24.4 and Git 1.9.4.


You are looking at the of the development branch. For instructions on how to install the stable version of Magit see the extended installation instructions instead.

First uninstall all instances of magit, git-commit-mode and git-rebase-mode that you have currently installed. Doing this, and doing it carefully (e.g. did you also install Magit using your distributions package manager at some point?), is very important. It only takes a few minutes to do this, but if everyone does it, then that will save me hours of investigating "impossible" issues, which I cannot actually reproduce myself.

Then install package dash using install-package. This is now the only external dependency; the libraries git-commit.el and git-rebase.el are now part of the Magit repository. (These libraries were previously part of the Git-Modes repository and their names used to end with -mode.el).

Then clone the Magit repository and check out the "next" branch:

$ git clone git:// ~/.emacs.d/site-lisp/magit
$ cd ~/.emacs.d/site-lisp/magit
$ git checkout next

Then compile the libraries:

$ make lisp

Finally add this to your init file:

(add-to-list 'load-path "~/emacs.d/site-lisp/magit")
(require 'magit)

To update Magit use:

$ git pull
$ make clean lisp

To view all available targets use make help.

Getting Help

When something doesn't work as expected please see the FAQ, and the list of open issues, and use the search box at the top of the latter to find older related issues. If everything else fails ask for help on the Emacs Stackexchange site or the mailing list.


Magit is hosted on Github. Please contribute by reporting bugs and suggesting features on the issue tracker or by making code contributions using pull requests. Before opening a pull request read the brief contribution guidelines.

Please also consider supporting development by making a monetary donation. Thank you!

Magit was started by Marius Vollmer and is now maintained by Jonas Bernoulli. Other Magitians (former maintainers) are Nicolas Dudebout, Peter J. Weisberg, Phil Jackson, Rémi Vanicat, and Yann Hodique.

Many more people have contributed code and suggested features.

Thanks to all of you, may (the history of) the source be with you!

Something went wrong with that request. Please try again.