2.2 Installing from the Git Repository
Magit depends on the dash
, transient
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 repository.
Then clone the Magit repository:
$ git clone https://github.com/magit/magit.git ~/.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
, transient
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/config.mk
with the following content before running make
:
LOAD_PATH = -L ~/.emacs.d/site-lisp/magit/lisp
LOAD_PATH += -L ~/.emacs.d/site-lisp/dash
LOAD_PATH += -L ~/.emacs.d/site-lisp/transient/lisp
LOAD_PATH += -L ~/.emacs.d/site-lisp/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
(info-initialize)
(add-to-list 'Info-directory-list
"~/.emacs.d/site-lisp/magit/Documentation/"))
Of course if you installed the dependencies manually as well, then you have to tell Emacs about them too, by prefixing the above with:
(add-to-list 'load-path "~/.emacs.d/site-lisp/dash")
(add-to-list 'load-path "~/.emacs.d/site-lisp/transient/lisp")
(add-to-list 'load-path "~/.emacs.d/site-lisp/with-editor")
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.