--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">\r
+\r
+<article lang="en" id="git-format-patch(1)">\r
+<articleinfo>\r
+ <title>git-format-patch(1)</title>\r
+ <indexterm>\r
+ <primary>git-format-patch(1)</primary>\r
+ </indexterm>\r
+</articleinfo>\r
+<simplesect id="_name">\r
+<title>NAME</title>\r
+<simpara>git-format-patch - Prepare patches for e-mail submission</simpara>\r
+</simplesect>\r
+<simplesect id="_synopsis">\r
+<title>SYNOPSIS</title>\r
+<blockquote>\r
+<literallayout><emphasis>git format-patch</emphasis> [-k] [-o <dir> | --stdout] [--thread]\r
+ [--attach[=<boundary>] | --inline[=<boundary>]]\r
+ [-s | --signoff] [<common diff options>]\r
+ [-n | --numbered | -N | --no-numbered]\r
+ [--start-number <n>] [--numbered-files]\r
+ [--in-reply-to=Message-Id] [--suffix=.<sfx>]\r
+ [--ignore-if-in-upstream]\r
+ [--subject-prefix=Subject-Prefix]\r
+ [--cc=<email>]\r
+ [--cover-letter]\r
+ [ <since> | <revision range> ]</literallayout>\r
+</blockquote>\r
+</simplesect>\r
+<simplesect id="_description">\r
+<title>DESCRIPTION</title>\r
+<simpara>Prepare each commit with its patch in\r
+one file per commit, formatted to resemble UNIX mailbox format.\r
+The output of this command is convenient for e-mail submission or\r
+for use with <emphasis>git-am</emphasis>.</simpara>\r
+<simpara>There are two ways to specify which commits to operate on.</simpara>\r
+<orderedlist numeration="arabic">\r
+<listitem>\r
+<simpara>\r
+A single commit, <since>, specifies that the commits leading\r
+ to the tip of the current branch that are not in the history\r
+ that leads to the <since> to be output.\r
+</simpara>\r
+</listitem>\r
+<listitem>\r
+<simpara>\r
+Generic <revision range> expression (see "SPECIFYING\r
+ REVISIONS" section in <xref linkend="git-rev-parse(1)"/>) means the\r
+ commits in the specified range.\r
+</simpara>\r
+</listitem>\r
+</orderedlist>\r
+<simpara>A single commit, when interpreted as a <revision range>\r
+expression, means "everything that leads to that commit", but\r
+if you write <emphasis>git format-patch <commit></emphasis>, the previous rule\r
+applies to that command line and you do not get "everything\r
+since the beginning of the time". If you want to format\r
+everything since project inception to one commit, say "git\r
+format-patch --root <commit>" to make it clear that it is the\r
+latter case. If you want to format a single commit, you can do\r
+this with "git format-patch -1 <commit>".</simpara>\r
+<simpara>By default, each output file is numbered sequentially from 1, and uses the\r
+first line of the commit message (massaged for pathname safety) as\r
+the filename. With the --numbered-files option, the output file names\r
+will only be numbers, without the first line of the commit appended.\r
+The names of the output files are printed to standard\r
+output, unless the --stdout option is specified.</simpara>\r
+<simpara>If -o is specified, output files are created in <dir>. Otherwise\r
+they are created in the current working directory.</simpara>\r
+<simpara>By default, the subject of a single patch is "[PATCH] First Line" and\r
+the subject when multiple patches are output is "[PATCH n/m] First\r
+Line". To force 1/1 to be added for a single patch, use -n. To omit\r
+patch numbers from the subject, use -N</simpara>\r
+<simpara>If given --thread, <emphasis>git-format-patch</emphasis> will generate In-Reply-To and\r
+References headers to make the second and subsequent patch mails appear\r
+as replies to the first mail; this also generates a Message-Id header to\r
+reference.</simpara>\r
+</simplesect>\r
+<simplesect id="_options">\r
+<title>OPTIONS</title>\r
+<variablelist>\r
+<varlistentry>\r
+<term>\r
+-p\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Generate patches without diffstat.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-U<n>\r
+</term>\r
+<term>\r
+--unified=<n>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Generate diffs with <n> lines of context instead of\r
+ the usual three. Implies "-p".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--raw\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Generate the raw format.\r
+ \r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--patch-with-raw\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Synonym for "-p --raw".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--patience\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Generate a diff using the "patience diff" algorithm.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--stat[=width[,name-width]]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Generate a diffstat. You can override the default\r
+ output width for 80-column terminal by "--stat=width".\r
+ The width of the filename part can be controlled by\r
+ giving another width to it separated by a comma.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--numstat\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Similar to --stat, but shows number of added and\r
+ deleted lines in decimal notation and pathname without\r
+ abbreviation, to make it more machine friendly. For\r
+ binary files, outputs two <literal>-</literal> instead of saying\r
+ <literal>0 0</literal>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--shortstat\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Output only the last line of the --stat format containing total\r
+ number of modified files, as well as number of added and deleted\r
+ lines.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--dirstat[=limit]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Output the distribution of relative amount of changes (number of lines added or\r
+ removed) for each sub-directory. Directories with changes below\r
+ a cut-off percent (3% by default) are not shown. The cut-off percent\r
+ can be set with "--dirstat=limit". Changes in a child directory is not\r
+ counted for the parent directory, unless "--cumulative" is used.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--dirstat-by-file[=limit]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Same as --dirstat, but counts changed files instead of lines.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--summary\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Output a condensed summary of extended header information\r
+ such as creations, renames and mode changes.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--patch-with-stat\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Synonym for "-p --stat".\r
+ This is the default.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-z\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ NUL-line termination on output. This affects the --raw\r
+ output field terminator. Also output from commands such\r
+ as "git-log" will be delimited with NUL between commits.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--name-only\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show only names of changed files.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--name-status\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show only names and status of changed files. See the description\r
+ of the <literal>--diff-filter</literal> option on what the status letters mean.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--color\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show colored diff.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--no-color\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Turn off colored diff, even when the configuration file\r
+ gives the default to color output.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--color-words[=<regex>]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show colored word diff, i.e., color words which have changed.\r
+ By default, words are separated by whitespace.\r
+</simpara>\r
+<simpara>When a <regex> is specified, every non-overlapping match of the\r
+<regex> is considered a word. Anything between these matches is\r
+considered whitespace and ignored(!) for the purposes of finding\r
+differences. You may want to append <literal>|[^[:space:]]</literal> to your regular\r
+expression to make sure that it matches all non-whitespace characters.\r
+A match that contains a newline is silently truncated(!) at the\r
+newline.</simpara>\r
+<simpara>The regex can also be set via a diff driver or configuration option, see\r
+<xref linkend="gitattributes(1)"/> or <xref linkend="git-config(1)"/>. Giving it explicitly\r
+overrides any diff driver or configuration setting. Diff drivers\r
+override configuration settings.</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--no-renames\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Turn off rename detection, even when the configuration\r
+ file gives the default to do so.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--check\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Warn if changes introduce trailing whitespace\r
+ or an indent that uses a space before a tab. Exits with\r
+ non-zero status if problems are found. Not compatible with\r
+ --exit-code.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--full-index\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Instead of the first handful of characters, show the full\r
+ pre- and post-image blob object names on the "index"\r
+ line when generating patch format output.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--binary\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ In addition to --full-index, output "binary diff" that\r
+ can be applied with "git apply".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--abbrev[=<n>]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Instead of showing the full 40-byte hexadecimal object\r
+ name in diff-raw format output and diff-tree header\r
+ lines, show only a partial prefix. This is\r
+ independent of --full-index option above, which controls\r
+ the diff-patch output format. Non default number of\r
+ digits can be specified with --abbrev=<n>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-B\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Break complete rewrite changes into pairs of delete and create.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-M\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Detect renames.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-C\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Detect copies as well as renames. See also <literal>--find-copies-harder</literal>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--diff-filter=[ACDMRTUXB*]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Select only files that are Added (<literal>A</literal>), Copied (<literal>C</literal>),\r
+ Deleted (<literal>D</literal>), Modified (<literal>M</literal>), Renamed (<literal>R</literal>), have their\r
+ type (i.e. regular file, symlink, submodule, …) changed (<literal>T</literal>),\r
+ are Unmerged (<literal>U</literal>), are\r
+ Unknown (<literal>X</literal>), or have had their pairing Broken (<literal>B</literal>).\r
+ Any combination of the filter characters may be used.\r
+ When <literal>*</literal> (All-or-none) is added to the combination, all\r
+ paths are selected if there is any file that matches\r
+ other criteria in the comparison; if there is no file\r
+ that matches other criteria, nothing is selected.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--find-copies-harder\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ For performance reasons, by default, <literal>-C</literal> option finds copies only\r
+ if the original file of the copy was modified in the same\r
+ changeset. This flag makes the command\r
+ inspect unmodified files as candidates for the source of\r
+ copy. This is a very expensive operation for large\r
+ projects, so use it with caution. Giving more than one\r
+ <literal>-C</literal> option has the same effect.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-l<num>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ -M and -C options require O(n^2) processing time where n\r
+ is the number of potential rename/copy targets. This\r
+ option prevents rename/copy detection from running if\r
+ the number of rename/copy targets exceeds the specified\r
+ number.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-S<string>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Look for differences that contain the change in <string>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--pickaxe-all\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ When -S finds a change, show all the changes in that\r
+ changeset, not just the files that contain the change\r
+ in <string>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--pickaxe-regex\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Make the <string> not a plain string but an extended POSIX\r
+ regex to match.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-O<orderfile>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Output the patch in the order specified in the\r
+ <orderfile>, which has one shell glob pattern per line.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-R\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Swap two inputs; that is, show differences from index or\r
+ on-disk file to tree contents.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--relative[=<path>]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ When run from a subdirectory of the project, it can be\r
+ told to exclude changes outside the directory and show\r
+ pathnames relative to it with this option. When you are\r
+ not in a subdirectory (e.g. in a bare repository), you\r
+ can name which subdirectory to make the output relative\r
+ to by giving a <path> as an argument.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-a\r
+</term>\r
+<term>\r
+--text\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Treat all files as text.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--ignore-space-at-eol\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Ignore changes in whitespace at EOL.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-b\r
+</term>\r
+<term>\r
+--ignore-space-change\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Ignore changes in amount of whitespace. This ignores whitespace\r
+ at line end, and considers all other sequences of one or\r
+ more whitespace characters to be equivalent.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-w\r
+</term>\r
+<term>\r
+--ignore-all-space\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Ignore whitespace when comparing lines. This ignores\r
+ differences even if one line has whitespace where the other\r
+ line has none.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--inter-hunk-context=<lines>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show the context between diff hunks, up to the specified number\r
+ of lines, thereby fusing hunks that are close to each other.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--exit-code\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Make the program exit with codes similar to diff(1).\r
+ That is, it exits with 1 if there were differences and\r
+ 0 means no differences.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--quiet\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Disable all output of the program. Implies --exit-code.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--ext-diff\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Allow an external diff helper to be executed. If you set an\r
+ external diff driver with <xref linkend="gitattributes(5)"/>, you need\r
+ to use this option with <xref linkend="git-log(1)"/> and friends.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--no-ext-diff\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Disallow external diff drivers.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--ignore-submodules\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Ignore changes to submodules in the diff generation.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--src-prefix=<prefix>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show the given source prefix instead of "a/".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--dst-prefix=<prefix>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Show the given destination prefix instead of "b/".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--no-prefix\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Do not show any source or destination prefix.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+</variablelist>\r
+<simpara>For more detailed explanation on these common options, see also\r
+<xref linkend="gitdiffcore(7)"/>.</simpara>\r
+<variablelist>\r
+<varlistentry>\r
+<term>\r
+-<n>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Limits the number of patches to prepare.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-o <dir>\r
+</term>\r
+<term>\r
+--output-directory <dir>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Use <dir> to store the resulting files, instead of the\r
+ current working directory.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-n\r
+</term>\r
+<term>\r
+--numbered\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Name output in <emphasis>[PATCH n/m]</emphasis> format, even with a single patch.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-N\r
+</term>\r
+<term>\r
+--no-numbered\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Name output in <emphasis>[PATCH]</emphasis> format.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--start-number <n>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Start numbering the patches at <n> instead of 1.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--numbered-files\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Output file names will be a simple number sequence\r
+ without the default first line of the commit appended.\r
+ Mutually exclusive with the --stdout option.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-k\r
+</term>\r
+<term>\r
+--keep-subject\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Do not strip/add <emphasis>[PATCH]</emphasis> from the first line of the\r
+ commit log message.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+-s\r
+</term>\r
+<term>\r
+--signoff\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Add <literal>Signed-off-by:</literal> line to the commit message, using\r
+ the committer identity of yourself.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--stdout\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Print all commits to the standard output in mbox format,\r
+ instead of creating a file for each one.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--attach[=<boundary>]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Create multipart/mixed attachment, the first part of\r
+ which is the commit message and the patch itself in the\r
+ second part, with "Content-Disposition: attachment".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--inline[=<boundary>]\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Create multipart/mixed attachment, the first part of\r
+ which is the commit message and the patch itself in the\r
+ second part, with "Content-Disposition: inline".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--thread\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Add In-Reply-To and References headers to make the second and\r
+ subsequent mails appear as replies to the first. Also generates\r
+ the Message-Id header to reference.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--in-reply-to=Message-Id\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Make the first mail (or all the mails with --no-thread) appear as a\r
+ reply to the given Message-Id, which avoids breaking threads to\r
+ provide a new patch series.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--ignore-if-in-upstream\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Do not include a patch that matches a commit in\r
+ <until>..<since>. This will examine all patches reachable\r
+ from <since> but not from <until> and compare them with the\r
+ patches being generated, and any patch that matches is\r
+ ignored.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--subject-prefix=<Subject-Prefix>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Instead of the standard <emphasis>[PATCH]</emphasis> prefix in the subject\r
+ line, instead use <emphasis>[<Subject-Prefix>]</emphasis>. This\r
+ allows for useful naming of a patch series, and can be\r
+ combined with the --numbered option.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--cc=<email>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Add a "Cc:" header to the email headers. This is in addition\r
+ to any configured headers, and may be used multiple times.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--cover-letter\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ In addition to the patches, generate a cover letter file\r
+ containing the shortlog and the overall diffstat. You can\r
+ fill in a description in the file before sending it out.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--suffix=.<sfx>\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Instead of using <literal>.patch</literal> as the suffix for generated\r
+ filenames, use specified suffix. A common alternative is\r
+ <literal>--suffix=.txt</literal>.\r
+</simpara>\r
+<simpara>Note that you would need to include the leading dot <literal>.</literal> if you\r
+want a filename like <literal>0001-description-of-my-change.patch</literal>, and\r
+the first letter does not have to be a dot. Leaving it empty would\r
+not add any suffix.</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+--no-binary\r
+</term>\r
+<listitem>\r
+<simpara>\r
+ Don’t output contents of changes in binary files, just take note\r
+ that they differ. Note that this disable the patch to be properly\r
+ applied. By default the contents of changes in those files are\r
+ encoded in the patch.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+</variablelist>\r
+</simplesect>\r
+<simplesect id="_configuration">\r
+<title>CONFIGURATION</title>\r
+<simpara>You can specify extra mail header lines to be added to each message\r
+in the repository configuration, new defaults for the subject prefix\r
+and file suffix, and number patches when outputting more than one.</simpara>\r
+<literallayout>[format]\r
+ headers = "Organization: git-foo\n"\r
+ subjectprefix = CHANGE\r
+ suffix = .txt\r
+ numbered = auto\r
+ cc = <email></literallayout>\r
+</simplesect>\r
+<simplesect id="_examples">\r
+<title>EXAMPLES</title>\r
+<itemizedlist>\r
+<listitem>\r
+<simpara>\r
+Extract commits between revisions R1 and R2, and apply them on top of\r
+the current branch using <emphasis>git-am</emphasis> to cherry-pick them:\r
+</simpara>\r
+<literallayout>$ git format-patch -k --stdout R1..R2 | git am -3 -k</literallayout>\r
+</listitem>\r
+<listitem>\r
+<simpara>\r
+Extract all commits which are in the current branch but not in the\r
+origin branch:\r
+</simpara>\r
+<literallayout>$ git format-patch origin</literallayout>\r
+<simpara>For each commit a separate file is created in the current directory.</simpara>\r
+</listitem>\r
+<listitem>\r
+<simpara>\r
+Extract all commits that lead to <emphasis>origin</emphasis> since the inception of the\r
+project:\r
+</simpara>\r
+<literallayout>$ git format-patch --root origin</literallayout>\r
+</listitem>\r
+<listitem>\r
+<simpara>\r
+The same as the previous one:\r
+</simpara>\r
+<literallayout>$ git format-patch -M -B origin</literallayout>\r
+<simpara>Additionally, it detects and handles renames and complete rewrites\r
+intelligently to produce a renaming patch. A renaming patch reduces\r
+the amount of text output, and generally makes it easier to review it.\r
+Note that the "patch" program does not understand renaming patches, so\r
+use it only when you know the recipient uses git to apply your patch.</simpara>\r
+</listitem>\r
+<listitem>\r
+<simpara>\r
+Extract three topmost commits from the current branch and format them\r
+as e-mailable patches:\r
+</simpara>\r
+<literallayout>$ git format-patch -3</literallayout>\r
+</listitem>\r
+</itemizedlist>\r
+</simplesect>\r
+<simplesect id="_see_also">\r
+<title>SEE ALSO</title>\r
+<simpara><xref linkend="git-am(1)"/>, <xref linkend="git-send-email(1)"/></simpara>\r
+</simplesect>\r
+<simplesect id="_author">\r
+<title>Author</title>\r
+<simpara>Written by Junio C Hamano <<ulink url="mailto:gitster@pobox.com">gitster@pobox.com</ulink>></simpara>\r
+</simplesect>\r
+<simplesect id="_documentation">\r
+<title>Documentation</title>\r
+<simpara>Documentation by Junio C Hamano and the git-list <<ulink url="mailto:git@vger.kernel.org">git@vger.kernel.org</ulink>>.</simpara>\r
+</simplesect>\r
+<simplesect id="_git">\r
+<title>GIT</title>\r
+<simpara>Part of the <xref linkend="git(1)"/> suite</simpara>\r
+</simplesect>\r
+</article>\r