Next: , Previous: , Up: Installation   [Contents][Index]

2.2 Installing from the Git Repository

Magit depends on the dash, magit-popup, ghub and with-editor libraries which are available from Melpa and Melpa-Stable. Install them using M-x package-install RET <package> RET. Of course you may also install them manually from their development repository.

(An ancient release of Magit is also available from Marmalade, but no new versions will be uploaded. Marmalade is unmaintained — its maintainer has stopped responding to support requests from package authors or even just to create new accounts so that new authors can upload their packages in the first place.)

Then clone the Magit repository:

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

Then compile the libraries and generate the info manuals:

$ make

If you haven’t installed dash, magit-popup, ghub and with-editor from Melpa or at /path/to/magit/../<package>, then you have to tell make where to find them. To do so create the file /path/to/magit/ with the following content before running make:

LOAD_PATH  = -L /path/to/magit/lisp
LOAD_PATH += -L /path/to/dash
LOAD_PATH += -L /path/to/magit-popup
LOAD_PATH += -L /path/to/ghub
LOAD_PATH += -L /path/to/with-editor

Finally add this to your init file:

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

(with-eval-after-load 'info
  (add-to-list 'Info-directory-list

Note that you have to add the lisp subdirectory to the load-path, not the top-level of the repository, and that elements of load-path should not end with a slash, while those of Info-directory-list should.

Instead of requiring the feature magit, you could load just the autoload definitions, by loading the file magit-autoloads.el.

(load "/path/to/magit/lisp/magit-autoloads")

Instead of running Magit directly from the repository by adding that to the load-path, you might want to instead install it in some other directory using sudo make install and setting load-path accordingly.

To update Magit use:

$ git pull
$ make

At times it might be necessary to run make clean all instead.

To view all available targets use make help.

Now see Post-Installation Tasks.

Next: , Previous: , Up: Installation   [Contents][Index]