Documentation / git-send-email.txton commit Merge branch 'sb/opt-filename' (f9275c6)
   1git-send-email(1)
   2=================
   3
   4NAME
   5----
   6git-send-email - Send a collection of patches as emails
   7
   8
   9SYNOPSIS
  10--------
  11'git send-email' [options] <file|directory|rev-list options>...
  12
  13
  14DESCRIPTION
  15-----------
  16Takes the patches given on the command line and emails them out.
  17
  18The header of the email is configurable by command line options.  If not
  19specified on the command line, the user will be prompted with a ReadLine
  20enabled interface to provide the necessary information.
  21
  22There are two formats accepted for patch files:
  23
  241. mbox format files
  25+
  26This is what linkgit:git-format-patch[1] generates.  Most headers and MIME
  27formatting are ignored.
  28
  292. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl'
  30script
  31+
  32This format expects the first line of the file to contain the "Cc:" value
  33and the "Subject:" of the message as the second line.
  34
  35
  36OPTIONS
  37-------
  38
  39Composing
  40~~~~~~~~~
  41
  42--annotate::
  43        Review and edit each patch you're about to send. See the
  44        CONFIGURATION section for 'sendemail.multiedit'.
  45
  46--bcc=<address>::
  47        Specify a "Bcc:" value for each email. Default is the value of
  48        'sendemail.bcc'.
  49+
  50The --bcc option must be repeated for each user you want on the bcc list.
  51
  52--cc=<address>::
  53        Specify a starting "Cc:" value for each email.
  54        Default is the value of 'sendemail.cc'.
  55+
  56The --cc option must be repeated for each user you want on the cc list.
  57
  58--compose::
  59        Use $GIT_EDITOR, core.editor, $VISUAL, or $EDITOR to edit an
  60        introductory message for the patch series.
  61+
  62When '--compose' is used, git send-email will use the From, Subject, and
  63In-Reply-To headers specified in the message. If the body of the message
  64(what you type after the headers and a blank line) only contains blank
  65(or GIT: prefixed) lines the summary won't be sent, but From, Subject,
  66and In-Reply-To headers will be used unless they are removed.
  67+
  68Missing From or In-Reply-To headers will be prompted for.
  69+
  70See the CONFIGURATION section for 'sendemail.multiedit'.
  71
  72--from=<address>::
  73        Specify the sender of the emails.  If not specified on the command line,
  74        the value of the 'sendemail.from' configuration option is used.  If
  75        neither the command line option nor 'sendemail.from' are set, then the
  76        user will be prompted for the value.  The default for the prompt will be
  77        the value of GIT_AUTHOR_IDENT, or GIT_COMMITTER_IDENT if that is not
  78        set, as returned by "git var -l".
  79
  80--in-reply-to=<identifier>::
  81        Specify the contents of the first In-Reply-To header.
  82        Subsequent emails will refer to the previous email
  83        instead of this if --chain-reply-to is set (the default)
  84        Only necessary if --compose is also set.  If --compose
  85        is not set, this will be prompted for.
  86
  87--subject=<string>::
  88        Specify the initial subject of the email thread.
  89        Only necessary if --compose is also set.  If --compose
  90        is not set, this will be prompted for.
  91
  92--to=<address>::
  93        Specify the primary recipient of the emails generated. Generally, this
  94        will be the upstream maintainer of the project involved. Default is the
  95        value of the 'sendemail.to' configuration value; if that is unspecified,
  96        this will be prompted for.
  97+
  98The --to option must be repeated for each user you want on the to list.
  99
 100
 101Sending
 102~~~~~~~
 103
 104--envelope-sender=<address>::
 105        Specify the envelope sender used to send the emails.
 106        This is useful if your default address is not the address that is
 107        subscribed to a list. If you use the sendmail binary, you must have
 108        suitable privileges for the -f parameter. Default is the value of
 109        the 'sendemail.envelopesender' configuration variable; if that is
 110        unspecified, choosing the envelope sender is left to your MTA.
 111
 112--smtp-encryption=<encryption>::
 113        Specify the encryption to use, either 'ssl' or 'tls'.  Any other
 114        value reverts to plain SMTP.  Default is the value of
 115        'sendemail.smtpencryption'.
 116
 117--smtp-pass[=<password>]::
 118        Password for SMTP-AUTH. The argument is optional: If no
 119        argument is specified, then the empty string is used as
 120        the password. Default is the value of 'sendemail.smtppass',
 121        however '--smtp-pass' always overrides this value.
 122+
 123Furthermore, passwords need not be specified in configuration files
 124or on the command line. If a username has been specified (with
 125'--smtp-user' or a 'sendemail.smtpuser'), but no password has been
 126specified (with '--smtp-pass' or 'sendemail.smtppass'), then the
 127user is prompted for a password while the input is masked for privacy.
 128
 129--smtp-server=<host>::
 130        If set, specifies the outgoing SMTP server to use (e.g.
 131        `smtp.example.com` or a raw IP address).  Alternatively it can
 132        specify a full pathname of a sendmail-like program instead;
 133        the program must support the `-i` option.  Default value can
 134        be specified by the 'sendemail.smtpserver' configuration
 135        option; the built-in default is `/usr/sbin/sendmail` or
 136        `/usr/lib/sendmail` if such program is available, or
 137        `localhost` otherwise.
 138
 139--smtp-server-port=<port>::
 140        Specifies a port different from the default port (SMTP
 141        servers typically listen to smtp port 25 and ssmtp port
 142        465); symbolic port names (e.g. "submission" instead of 465)
 143        are also accepted. The port can also be set with the
 144        'sendemail.smtpserverport' configuration variable.
 145
 146--smtp-ssl::
 147        Legacy alias for '--smtp-encryption ssl'.
 148
 149--smtp-user=<user>::
 150        Username for SMTP-AUTH. Default is the value of 'sendemail.smtpuser';
 151        if a username is not specified (with '--smtp-user' or 'sendemail.smtpuser'),
 152        then authentication is not attempted.
 153
 154
 155Automating
 156~~~~~~~~~~
 157
 158--cc-cmd=<command>::
 159        Specify a command to execute once per patch file which
 160        should generate patch file specific "Cc:" entries.
 161        Output of this command must be single email address per line.
 162        Default is the value of 'sendemail.cccmd' configuration value.
 163
 164--[no-]chain-reply-to=<identifier>::
 165        If this is set, each email will be sent as a reply to the previous
 166        email sent.  If disabled with "--no-chain-reply-to", all emails after
 167        the first will be sent as replies to the first email sent.  When using
 168        this, it is recommended that the first file given be an overview of the
 169        entire patch series. Default is the value of the 'sendemail.chainreplyto'
 170        configuration value; if that is unspecified, default to --chain-reply-to.
 171
 172--identity=<identity>::
 173        A configuration identity. When given, causes values in the
 174        'sendemail.<identity>' subsection to take precedence over
 175        values in the 'sendemail' section. The default identity is
 176        the value of 'sendemail.identity'.
 177
 178--[no-]signed-off-by-cc::
 179        If this is set, add emails found in Signed-off-by: or Cc: lines to the
 180        cc list. Default is the value of 'sendemail.signedoffbycc' configuration
 181        value; if that is unspecified, default to --signed-off-by-cc.
 182
 183--suppress-cc=<category>::
 184        Specify an additional category of recipients to suppress the
 185        auto-cc of:
 186+
 187--
 188- 'author' will avoid including the patch author
 189- 'self' will avoid including the sender
 190- 'cc' will avoid including anyone mentioned in Cc lines in the patch header
 191  except for self (use 'self' for that).
 192- 'ccbody' will avoid including anyone mentioned in Cc lines in the
 193  patch body (commit message) except for self (use 'self' for that).
 194- 'sob' will avoid including anyone mentioned in Signed-off-by lines except
 195   for self (use 'self' for that).
 196- 'cccmd' will avoid running the --cc-cmd.
 197- 'body' is equivalent to 'sob' + 'ccbody'
 198- 'all' will suppress all auto cc values.
 199--
 200+
 201Default is the value of 'sendemail.suppresscc' configuration value; if
 202that is unspecified, default to 'self' if --suppress-from is
 203specified, as well as 'body' if --no-signed-off-cc is specified.
 204
 205--[no-]suppress-from::
 206        If this is set, do not add the From: address to the cc: list.
 207        Default is the value of 'sendemail.suppressfrom' configuration
 208        value; if that is unspecified, default to --no-suppress-from.
 209
 210--[no-]thread::
 211        If this is set, the In-Reply-To header will be set on each email sent.
 212        If disabled with "--no-thread", no emails will have the In-Reply-To
 213        header set. Default is the value of the 'sendemail.thread' configuration
 214        value; if that is unspecified, default to --thread.
 215
 216
 217Administering
 218~~~~~~~~~~~~~
 219
 220--confirm=<mode>::
 221        Confirm just before sending:
 222+
 223--
 224- 'always' will always confirm before sending
 225- 'never' will never confirm before sending
 226- 'cc' will confirm before sending when send-email has automatically
 227  added addresses from the patch to the Cc list
 228- 'compose' will confirm before sending the first message when using --compose.
 229- 'auto' is equivalent to 'cc' + 'compose'
 230--
 231+
 232Default is the value of 'sendemail.confirm' configuration value; if that
 233is unspecified, default to 'auto' unless any of the suppress options
 234have been specified, in which case default to 'compose'.
 235
 236--dry-run::
 237        Do everything except actually send the emails.
 238
 239--[no-]format-patch::
 240        When an argument may be understood either as a reference or as a file name,
 241        choose to understand it as a format-patch argument ('--format-patch')
 242        or as a file name ('--no-format-patch'). By default, when such a conflict
 243        occurs, git send-email will fail.
 244
 245--quiet::
 246        Make git-send-email less verbose.  One line per email should be
 247        all that is output.
 248
 249--[no-]validate::
 250        Perform sanity checks on patches.
 251        Currently, validation means the following:
 252+
 253--
 254                *       Warn of patches that contain lines longer than 998 characters; this
 255                        is due to SMTP limits as described by http://www.ietf.org/rfc/rfc2821.txt.
 256--
 257+
 258Default is the value of 'sendemail.validate'; if this is not set,
 259default to '--validate'.
 260
 261
 262CONFIGURATION
 263-------------
 264
 265sendemail.aliasesfile::
 266        To avoid typing long email addresses, point this to one or more
 267        email aliases files.  You must also supply 'sendemail.aliasfiletype'.
 268
 269sendemail.aliasfiletype::
 270        Format of the file(s) specified in sendemail.aliasesfile. Must be
 271        one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'.
 272
 273sendemail.multiedit::
 274        If true (default), a single editor instance will be spawned to edit
 275        files you have to edit (patches when '--annotate' is used, and the
 276        summary when '--compose' is used). If false, files will be edited one
 277        after the other, spawning a new editor each time.
 278
 279sendemail.confirm::
 280        Sets the default for whether to confirm before sending. Must be
 281        one of 'always', 'never', 'cc', 'compose', or 'auto'. See '--confirm'
 282        in the previous section for the meaning of these values.
 283
 284
 285Author
 286------
 287Written by Ryan Anderson <ryan@michonline.com>
 288
 289git-send-email is originally based upon
 290send_lots_of_email.pl by Greg Kroah-Hartman.
 291
 292
 293Documentation
 294--------------
 295Documentation by Ryan Anderson
 296
 297
 298GIT
 299---
 300Part of the linkgit:git[1] suite