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