€•[*Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ,/translations/zh_CN/maintainer/configure-git”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/maintainer/configure-git”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/maintainer/configure-git”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/maintainer/configure-git”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/maintainer/configure-git”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/maintainer/configure-git”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒConfiguring Git”h]”hŒConfiguring Git”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒF/var/lib/git/docbuild/linux/Documentation/maintainer/configure-git.rst”h KubhŒ paragraph”“”)”}”(hŒ:This chapter describes maintainer level git configuration.”h]”hŒ:This chapter describes maintainer level git configuration.”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hXwTagged branches used in pull requests (see Documentation/maintainer/pull-requests.rst) should be signed with the developers public GPG key. Signed tags can be created by passing ``-u `` to ``git tag``. However, since you would *usually* use the same key for the project, you can set it in the configuration and use the ``-s`` flag. To set the default ``key-id`` use::”h]”(hŒ²Tagged branches used in pull requests (see Documentation/maintainer/pull-requests.rst) should be signed with the developers public GPG key. Signed tags can be created by passing ”…””}”(hhÇhžhhŸNh NubhŒliteral”“”)”}”(hŒ``-u ``”h]”hŒ -u ”…””}”(hhÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhhÇubhŒ to ”…””}”(hhÇhžhhŸNh NubhÐ)”}”(hŒ ``git tag``”h]”hŒgit tag”…””}”(hhãhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhhÇubhŒ. However, since you would ”…””}”(hhÇhžhhŸNh NubhŒemphasis”“”)”}”(hŒ *usually*”h]”hŒusually”…””}”(hh÷hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhhÇubhŒS use the same key for the project, you can set it in the configuration and use the ”…””}”(hhÇhžhhŸNh NubhÐ)”}”(hŒ``-s``”h]”hŒ-s”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhhÇubhŒ flag. To set the default ”…””}”(hhÇhžhhŸNh NubhÐ)”}”(hŒ ``key-id``”h]”hŒkey-id”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhhÇubhŒ use:”…””}”(hhÇhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhŒ literal_block”“”)”}”(hŒ$git config user.signingkey "keyname"”h]”hŒ$git config user.signingkey "keyname"”…””}”hj5sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j3hŸh¶h K hh£hžhubh¸)”}”(hŒKAlternatively, edit your ``.git/config`` or ``~/.gitconfig`` file by hand::”h]”(hŒAlternatively, edit your ”…””}”(hjEhžhhŸNh NubhÐ)”}”(hŒ``.git/config``”h]”hŒ .git/config”…””}”(hjMhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhjEubhŒ or ”…””}”(hjEhžhhŸNh NubhÐ)”}”(hŒ``~/.gitconfig``”h]”hŒ ~/.gitconfig”…””}”(hj_hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhjEubhŒ file by hand:”…””}”(hjEhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubj4)”}”(hŒe[user] name = Jane Developer email = jd@domain.org signingkey = jd@domain.org”h]”hŒe[user] name = Jane Developer email = jd@domain.org signingkey = jd@domain.org”…””}”hjwsbah}”(h]”h ]”h"]”h$]”h&]”jCjDuh1j3hŸh¶h Khh£hžhubh¸)”}”(hŒ.You may need to tell ``git`` to use ``gpg2``::”h]”(hŒYou may need to tell ”…””}”(hj…hžhhŸNh NubhÐ)”}”(hŒ``git``”h]”hŒgit”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhj…ubhŒ to use ”…””}”(hj…hžhhŸNh NubhÐ)”}”(hŒ``gpg2``”h]”hŒgpg2”…””}”(hjŸhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhj…ubhŒ:”…””}”(hj…hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubj4)”}”(hŒ%[gpg] program = /path/to/gpg2”h]”hŒ%[gpg] program = /path/to/gpg2”…””}”hj·sbah}”(h]”h ]”h"]”h$]”h&]”jCjDuh1j3hŸh¶h Khh£hžhubh¸)”}”(hŒTYou may also like to tell ``gpg`` which ``tty`` to use (add to your shell rc file)::”h]”(hŒYou may also like to tell ”…””}”(hjÅhžhhŸNh NubhÐ)”}”(hŒ``gpg``”h]”hŒgpg”…””}”(hjÍhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhjÅubhŒ which ”…””}”(hjÅhžhhŸNh NubhÐ)”}”(hŒ``tty``”h]”hŒtty”…””}”(hjßhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhjÅubhŒ$ to use (add to your shell rc file):”…””}”(hjÅhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubj4)”}”(hŒexport GPG_TTY=$(tty)”h]”hŒexport GPG_TTY=$(tty)”…””}”hj÷sbah}”(h]”h ]”h"]”h$]”h&]”jCjDuh1j3hŸh¶h Khh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ(Creating commit links to lore.kernel.org”h]”hŒ(Creating commit links to lore.kernel.org”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h K"ubh¸)”}”(hXêThe web site https://lore.kernel.org is meant as a grand archive of all mail list traffic concerning or influencing the kernel development. Storing archives of patches here is a recommended practice, and when a maintainer applies a patch to a subsystem tree, it is a good idea to provide a Link: tag with a reference back to the lore archive so that people that browse the commit history can find related discussions and rationale behind a certain change. The link tag will look like this::”h]”(hŒ The web site ”…””}”(hjhžhhŸNh NubhŒ reference”“”)”}”(hŒhttps://lore.kernel.org”h]”hŒhttps://lore.kernel.org”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j"uh1jhjubhXÅ is meant as a grand archive of all mail list traffic concerning or influencing the kernel development. Storing archives of patches here is a recommended practice, and when a maintainer applies a patch to a subsystem tree, it is a good idea to provide a Link: tag with a reference back to the lore archive so that people that browse the commit history can find related discussions and rationale behind a certain change. The link tag will look like this:”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K$hjhžhubj4)”}”(hŒ,Link: https://lore.kernel.org/r/”h]”hŒ,Link: https://lore.kernel.org/r/”…””}”hj9sbah}”(h]”h ]”h"]”h$]”h&]”jCjDuh1j3hŸh¶h K,hjhžhubh¸)”}”(hŒyThis can be configured to happen automatically any time you issue ``git am`` by adding the following hook into your git::”h]”(hŒBThis can be configured to happen automatically any time you issue ”…””}”(hjGhžhhŸNh NubhÐ)”}”(hŒ ``git am``”h]”hŒgit am”…””}”(hjOhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhjGubhŒ, by adding the following hook into your git:”…””}”(hjGhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K.hjhžhubj4)”}”(hX@$ git config am.messageid true $ cat >.git/hooks/applypatch-msg <<'EOF' #!/bin/sh . git-sh-setup perl -pi -e 's|^Message-I[dD]:\s*]+)>?$|Link: https://lore.kernel.org/r/$1|g;' "$1" test -x "$GIT_DIR/hooks/commit-msg" && exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} : EOF $ chmod a+x .git/hooks/applypatch-msg”h]”hX@$ git config am.messageid true $ cat >.git/hooks/applypatch-msg <<'EOF' #!/bin/sh . git-sh-setup perl -pi -e 's|^Message-I[dD]:\s*]+)>?$|Link: https://lore.kernel.org/r/$1|g;' "$1" test -x "$GIT_DIR/hooks/commit-msg" && exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} : EOF $ chmod a+x .git/hooks/applypatch-msg”…””}”hjgsbah}”(h]”h ]”h"]”h$]”h&]”jCjDuh1j3hŸh¶h K1hjhžhubeh}”(h]”Œ(creating-commit-links-to-lore-kernel-org”ah ]”h"]”Œ(creating commit links to lore.kernel.org”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K"ubeh}”(h]”Œconfiguring-git”ah ]”h"]”Œconfiguring git”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j¨Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j‚jjzjwuŒ nametypes”}”(j‚‰jz‰uh}”(jh£jwjuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.