xref: /linux/Documentation/maintainer/configure-git.rst (revision 78964fcac47fc1525ecb4c37cd5fbc873c28320b)
1Configuring Git
2===============
3
4This chapter describes maintainer level git configuration.
5
6Tagged branches used in pull requests (see
7Documentation/maintainer/pull-requests.rst) should be signed with the
8developers public GPG key. Signed tags can be created by passing
9``-u <key-id>`` to ``git tag``. However, since you would *usually* use the same
10key for the project, you can set it in the configuration and use the ``-s``
11flag. To set the default ``key-id`` use::
12
13	git config user.signingkey "keyname"
14
15Alternatively, edit your ``.git/config`` or ``~/.gitconfig`` file by hand::
16
17	[user]
18		name = Jane Developer
19		email = jd@domain.org
20		signingkey = jd@domain.org
21
22You may need to tell ``git`` to use ``gpg2``::
23
24	[gpg]
25		program = /path/to/gpg2
26
27You may also like to tell ``gpg`` which ``tty`` to use (add to your shell
28rc file)::
29
30	export GPG_TTY=$(tty)
31
32
33Creating commit links to lore.kernel.org
34----------------------------------------
35
36The web site https://lore.kernel.org is meant as a grand archive of all mail
37list traffic concerning or influencing the kernel development. Storing archives
38of patches here is a recommended practice, and when a maintainer applies a
39patch to a subsystem tree, it is a good idea to provide a Link: tag with a
40reference back to the lore archive so that people that browse the commit
41history can find related discussions and rationale behind a certain change.
42The link tag will look like this::
43
44    Link: https://lore.kernel.org/r/<message-id>
45
46This can be configured to happen automatically any time you issue ``git am``
47by adding the following hook into your git::
48
49	$ git config am.messageid true
50	$ cat >.git/hooks/applypatch-msg <<'EOF'
51	#!/bin/sh
52	. git-sh-setup
53	perl -pi -e 's|^Message-I[dD]:\s*<?([^>]+)>?$|Link: https://lore.kernel.org/r/$1|g;' "$1"
54	test -x "$GIT_DIR/hooks/commit-msg" &&
55		exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
56	:
57	EOF
58	$ chmod a+x .git/hooks/applypatch-msg
59