sha1_file: avoid re-preparing duplicate packs
[git/git.git] / Documentation / git-format-patch.txt
CommitLineData
215a7ad1
JH
1git-format-patch(1)
2===================
7fc9d69f
JH
3
4NAME
5----
7bd7f280 6git-format-patch - Prepare patches for e-mail submission
7fc9d69f
JH
7
8
9SYNOPSIS
10--------
353ce815 11[verse]
a15a44ef 12'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [-s] [-c]
353ce815 13 [--diff-options] <his> [<mine>]
7fc9d69f
JH
14
15DESCRIPTION
16-----------
35ef3a4c 17Prepare each commit with its patch since <mine> head forked from
66f04f38
AE
18<his> head, one file per patch formatted to resemble UNIX mailbox
19format, for e-mail submission or use with gitlink:git-am[1].
35ef3a4c 20
66f04f38
AE
21Each output file is numbered sequentially from 1, and uses the
22first line of the commit message (massaged for pathname safety)
23as the filename.
24
25When -o is specified, output files are created in <dir>; otherwise
26they are created in the current working directory. This option
27is ignored if --stdout is specified.
35ef3a4c
JH
28
29When -n is specified, instead of "[PATCH] Subject", the first
30line is formatted as "[PATCH N/M] Subject", unless you have only
31one patch.
32
7fc9d69f
JH
33
34OPTIONS
35-------
6f855371 36-o|--output-directory <dir>::
35ef3a4c
JH
37 Use <dir> to store the resulting files, instead of the
38 current working directory.
39
6f855371 40-n|--numbered::
35ef3a4c
JH
41 Name output in '[PATCH n/m]' format.
42
6f855371 43-k|--keep-subject::
35ef3a4c
JH
44 Do not strip/add '[PATCH]' from the first line of the
45 commit log message.
46
6f855371
NW
47-s|--signoff::
48 Add `Signed-off-by:` line to the commit message, using
49 the committer identity of yourself.
50
51-c|--check::
52 Display suspicious lines in the patch. The definition
53 of 'suspicious lines' is currently the lines that has
54 trailing whitespaces, and the lines whose indentation
55 has a SP character immediately followed by a TAB
56 character.
57
54ba6013
JH
58--stdout::
59 This flag generates the mbox formatted output to the
60 standard output, instead of saving them into a file per
61 patch and implies --mbox.
7fc9d69f 62
a15a44ef
MM
63--attach::
64 Create attachments instead of inlining patches.
65
28ffb898 66
96ce6d26
MM
67CONFIGURATION
68-------------
69You can specify extra mail header lines to be added to each
70message in the repository configuration as follows:
71
72[format]
73 headers = "Organization: git-foo\n"
74
75
28ffb898
JH
76EXAMPLES
77--------
78
79git-format-patch -k --stdout R1..R2 | git-am -3 -k::
80 Extract commits between revisions R1 and R2, and apply
81 them on top of the current branch using `git-am` to
82 cherry-pick them.
83
84git-format-patch origin::
85 Extract commits the current branch accumulated since it
86 pulled from origin the last time in a patch form for
87 e-mail submission.
88
803f498c
JH
89git-format-patch -M -B origin::
90 The same as the previous one, except detect and handle
91 renames and complete rewrites intelligently to produce
92 renaming patch. A renaming patch reduces the amount of
93 text output, and generally makes it easier to review
94 it. Note that the "patch" program does not understand
95 renaming patch well, so use it only when you know the
96 recipient uses git to apply your patch.
97
28ffb898
JH
98
99See Also
100--------
353ce815 101gitlink:git-am[1], gitlink:git-send-email[1]
28ffb898
JH
102
103
7fc9d69f
JH
104Author
105------
106Written by Junio C Hamano <junkio@cox.net>
107
108Documentation
109--------------
110Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
111
112GIT
113---
a7154e91 114Part of the gitlink:git[7] suite
7fc9d69f 115