blob: 7c1d2875d83e8b5cbc68176412fd99972029cc74 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamano38de0a22006-02-07 10:24:356<meta name="generator" content="AsciiDoc 7.0.2" />
Junio C Hamano1a4e8412005-12-27 08:17:237<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
19a { color: blue; }
20a:visited { color: fuchsia; }
21
22em {
23 font-style: italic;
24}
25
26strong {
27 font-weight: bold;
28}
29
30tt {
31 color: navy;
32}
33
34h1, h2, h3, h4, h5, h6 {
35 color: #527bbd;
36 font-family: sans-serif;
37 margin-top: 1.2em;
38 margin-bottom: 0.5em;
39 line-height: 1.3;
40}
41
42h1 {
43 border-bottom: 2px solid silver;
44}
45h2 {
46 border-bottom: 2px solid silver;
47 padding-top: 0.5em;
48}
49
50div.sectionbody {
51 font-family: serif;
52 margin-left: 0;
53}
54
55hr {
56 border: 1px solid silver;
57}
58
59p {
60 margin-top: 0.5em;
61 margin-bottom: 0.5em;
62}
63
64pre {
65 padding: 0;
66 margin: 0;
67}
68
69span#author {
70 color: #527bbd;
71 font-family: sans-serif;
72 font-weight: bold;
73 font-size: 1.2em;
74}
75span#email {
76}
77span#revision {
78 font-family: sans-serif;
79}
80
81div#footer {
82 font-family: sans-serif;
83 font-size: small;
84 border-top: 2px solid silver;
85 padding-top: 0.5em;
86 margin-top: 4.0em;
87}
88div#footer-text {
89 float: left;
90 padding-bottom: 0.5em;
91}
92div#footer-badges {
93 float: right;
94 padding-bottom: 0.5em;
95}
96
97div#preamble,
98div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
99div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
100div.admonitionblock {
101 margin-right: 10%;
102 margin-top: 1.5em;
103 margin-bottom: 1.5em;
104}
105div.admonitionblock {
106 margin-top: 2.5em;
107 margin-bottom: 2.5em;
108}
109
110div.content { /* Block element content. */
111 padding: 0;
112}
113
114/* Block element titles. */
115div.title, caption.title {
116 font-family: sans-serif;
117 font-weight: bold;
118 text-align: left;
119 margin-top: 1.0em;
120 margin-bottom: 0.5em;
121}
122div.title + * {
123 margin-top: 0;
124}
125
126td div.title:first-child {
127 margin-top: 0.0em;
128}
129div.content div.title:first-child {
130 margin-top: 0.0em;
131}
132div.content + div.title {
133 margin-top: 0.0em;
134}
135
136div.sidebarblock > div.content {
137 background: #ffffee;
138 border: 1px solid silver;
139 padding: 0.5em;
140}
141
142div.listingblock > div.content {
143 border: 1px solid silver;
144 background: #f4f4f4;
145 padding: 0.5em;
146}
147
148div.quoteblock > div.content {
149 padding-left: 2.0em;
150}
151div.quoteblock .attribution {
152 text-align: right;
153}
154
155div.admonitionblock .icon {
156 vertical-align: top;
157 font-size: 1.1em;
158 font-weight: bold;
159 text-decoration: underline;
160 color: #527bbd;
161 padding-right: 0.5em;
162}
163div.admonitionblock td.content {
164 padding-left: 0.5em;
165 border-left: 2px solid silver;
166}
167
168div.exampleblock > div.content {
169 border-left: 2px solid silver;
170 padding: 0.5em;
171}
172
173div.verseblock div.content {
174 white-space: pre;
175}
176
177div.imageblock div.content { padding-left: 0; }
178div.imageblock img { border: 1px solid silver; }
179span.image img { border-style: none; }
180
181dl {
182 margin-top: 0.8em;
183 margin-bottom: 0.8em;
184}
185dt {
186 margin-top: 0.5em;
187 margin-bottom: 0;
188 font-style: italic;
189}
190dd > *:first-child {
191 margin-top: 0;
192}
193
194ul, ol {
195 list-style-position: outside;
196}
197ol.olist2 {
198 list-style-type: lower-alpha;
199}
200
201div.tableblock > table {
202 border-color: #527bbd;
203 border-width: 3px;
204}
205thead {
206 font-family: sans-serif;
207 font-weight: bold;
208}
209tfoot {
210 font-weight: bold;
211}
212
213div.hlist {
214 margin-top: 0.8em;
215 margin-bottom: 0.8em;
216}
217td.hlist1 {
218 vertical-align: top;
219 font-style: italic;
220 padding-right: 0.8em;
221}
222td.hlist2 {
223 vertical-align: top;
224}
225
226@media print {
227 div#footer-badges { display: none; }
228}
229include::./stylesheets/xhtml11-manpage.css[]
230/* Workarounds for IE6's broken and incomplete CSS2. */
231
232div.sidebar-content {
233 background: #ffffee;
234 border: 1px solid silver;
235 padding: 0.5em;
236}
237div.sidebar-title, div.image-title {
238 font-family: sans-serif;
239 font-weight: bold;
240 margin-top: 0.0em;
241 margin-bottom: 0.5em;
242}
243
244div.listingblock div.content {
245 border: 1px solid silver;
246 background: #f4f4f4;
247 padding: 0.5em;
248}
249
250div.quoteblock-content {
251 padding-left: 2.0em;
252}
253
254div.exampleblock-content {
255 border-left: 2px solid silver;
256 padding-left: 0.5em;
257}
258</style>
259<title>git-format-patch(1)</title>
260</head>
261<body>
262<div id="header">
263<h1>
264git-format-patch(1) Manual Page
265</h1>
266<h2>NAME</h2>
267<div class="sectionbody">
268<p>git-format-patch -
Junio C Hamano01078922006-03-10 00:31:47269 Prepare patches for e-mail submission
Junio C Hamano1a4e8412005-12-27 08:17:23270</p>
271</div>
272</div>
273<h2>SYNOPSIS</h2>
274<div class="sectionbody">
Junio C Hamano235a91e2006-01-07 01:13:58275<div class="verseblock">
Junio C Hamanof9ca97d2006-07-25 22:23:09276<div class="content"><em>git-format-patch</em> [-n | -k] [-o &lt;dir&gt; | --stdout] [--attach] [--thread]
Junio C Hamano341071d2006-06-04 07:24:48277 [-s | --signoff] [--diff-options] [--start-number &lt;n&gt;]
Junio C Hamano4f9a6052007-01-17 20:25:16278 [--in-reply-to=Message-Id] [--suffix=.&lt;sfx&gt;]
Junio C Hamano7c73c662007-01-19 00:37:50279 [--ignore-if-in-upstream]
Junio C Hamano341071d2006-06-04 07:24:48280 &lt;since&gt;[..&lt;until&gt;]</div></div>
Junio C Hamano1a4e8412005-12-27 08:17:23281</div>
282<h2>DESCRIPTION</h2>
283<div class="sectionbody">
Junio C Hamano341071d2006-06-04 07:24:48284<p>Prepare each commit between &lt;since&gt; and &lt;until&gt; with its patch in
285one file per commit, formatted to resemble UNIX mailbox format.
286If ..&lt;until&gt; is not specified, the head of the current working
Junio C Hamano2d47c622007-01-18 06:24:10287tree is implied. For a more complete list of ways to spell
288&lt;since&gt; and &lt;until&gt;, see "SPECIFYING REVISIONS" section in
289<a href="git-rev-parse.html">git-rev-parse(1)</a>.</p>
Junio C Hamano341071d2006-06-04 07:24:48290<p>The output of this command is convenient for e-mail submission or
291for use with <a href="git-am.html">git-am(1)</a>.</p>
Junio C Hamano38de0a22006-02-07 10:24:35292<p>Each output file is numbered sequentially from 1, and uses the
Junio C Hamano341071d2006-06-04 07:24:48293first line of the commit message (massaged for pathname safety) as
294the filename. The names of the output files are printed to standard
295output, unless the --stdout option is specified.</p>
296<p>If -o is specified, output files are created in &lt;dir&gt;. Otherwise
297they are created in the current working directory.</p>
298<p>If -n is specified, instead of "[PATCH] Subject", the first line
299is formatted as "[PATCH n/m] Subject".</p>
Junio C Hamanof9ca97d2006-07-25 22:23:09300<p>If given --thread, git-format-patch will generate In-Reply-To and
301References headers to make the second and subsequent patch mails appear
302as replies to the first mail; this also generates a Message-Id header to
303reference.</p>
Junio C Hamano1a4e8412005-12-27 08:17:23304</div>
305<h2>OPTIONS</h2>
306<div class="sectionbody">
307<dl>
308<dt>
309-o|--output-directory &lt;dir&gt;
310</dt>
311<dd>
312<p>
313 Use &lt;dir&gt; to store the resulting files, instead of the
Junio C Hamano1bab4b02006-06-06 21:58:33314 current working directory.
Junio C Hamano1a4e8412005-12-27 08:17:23315</p>
316</dd>
317<dt>
318-n|--numbered
319</dt>
320<dd>
321<p>
322 Name output in <em>[PATCH n/m]</em> format.
323</p>
324</dd>
325<dt>
Junio C Hamano341071d2006-06-04 07:24:48326--start-number &lt;n&gt;
327</dt>
328<dd>
329<p>
330 Start numbering the patches at &lt;n&gt; instead of 1.
331</p>
332</dd>
333<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23334-k|--keep-subject
335</dt>
336<dd>
337<p>
338 Do not strip/add <em>[PATCH]</em> from the first line of the
339 commit log message.
340</p>
341</dd>
342<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23343-s|--signoff
344</dt>
345<dd>
346<p>
347 Add <tt>Signed-off-by:</tt> line to the commit message, using
348 the committer identity of yourself.
349</p>
350</dd>
351<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23352--stdout
353</dt>
354<dd>
355<p>
Junio C Hamano341071d2006-06-04 07:24:48356 Print all commits to the standard output in mbox format,
357 instead of creating a file for each one.
Junio C Hamano1a4e8412005-12-27 08:17:23358</p>
359</dd>
Junio C Hamano2496ae42006-03-11 08:04:33360<dt>
361--attach
362</dt>
363<dd>
364<p>
365 Create attachments instead of inlining patches.
366</p>
367</dd>
Junio C Hamanof9ca97d2006-07-25 22:23:09368<dt>
369--thread
370</dt>
371<dd>
372<p>
373 Add In-Reply-To and References headers to make the second and
374 subsequent mails appear as replies to the first. Also generates
375 the Message-Id header to reference.
376</p>
377</dd>
378<dt>
379--in-reply-to=Message-Id
380</dt>
381<dd>
382<p>
383 Make the first mail (or all the mails with --no-thread) appear as a
384 reply to the given Message-Id, which avoids breaking threads to
385 provide a new patch series.
386</p>
387</dd>
Junio C Hamano4f9a6052007-01-17 20:25:16388<dt>
Junio C Hamano7c73c662007-01-19 00:37:50389--ignore-if-in-upstream
390</dt>
391<dd>
392<p>
393 Do not include a patch that matches a commit in
394 &lt;until&gt;..&lt;since&gt;. This will examine all patches reachable
395 from &lt;since&gt; but not from &lt;until&gt; and compare them with the
396 patches being generated, and any patch that matches is
397 ignored.
398</p>
399</dd>
400<dt>
Junio C Hamano4f9a6052007-01-17 20:25:16401--suffix=.&lt;sfx&gt;
402</dt>
403<dd>
404<p>
Junio C Hamano7c73c662007-01-19 00:37:50405 Instead of using <tt>.patch</tt> as the suffix for generated
Junio C Hamano4f9a6052007-01-17 20:25:16406 filenames, use specifed suffix. A common alternative is
Junio C Hamano7c73c662007-01-19 00:37:50407 <tt>--suffix=.txt</tt>.
Junio C Hamano4f9a6052007-01-17 20:25:16408</p>
409<p>Note that you would need to include the leading dot <tt>.</tt> if you
410want a filename like <tt>0001-description-of-my-change.patch</tt>, and
411the first letter does not have to be a dot. Leaving it empty would
412not add any suffix.</p>
413</dd>
Junio C Hamano1a4e8412005-12-27 08:17:23414</dl>
415</div>
Junio C Hamano2496ae42006-03-11 08:04:33416<h2>CONFIGURATION</h2>
417<div class="sectionbody">
418<p>You can specify extra mail header lines to be added to each
Junio C Hamano7c73c662007-01-19 00:37:50419message in the repository configuration. Also you can specify
420the default suffix different from the built-in one:</p>
421<div class="listingblock">
Junio C Hamano2496ae42006-03-11 08:04:33422<div class="content">
Junio C Hamano7c73c662007-01-19 00:37:50423<pre><tt>[format]
424 headers = "Organization: git-foo\n"
425 suffix = .txt</tt></pre>
Junio C Hamano4f9a6052007-01-17 20:25:16426</div></div>
Junio C Hamano2496ae42006-03-11 08:04:33427</div>
Junio C Hamano1a4e8412005-12-27 08:17:23428<h2>EXAMPLES</h2>
429<div class="sectionbody">
430<dl>
431<dt>
432git-format-patch -k --stdout R1..R2 | git-am -3 -k
433</dt>
434<dd>
435<p>
436 Extract commits between revisions R1 and R2, and apply
437 them on top of the current branch using <tt>git-am</tt> to
438 cherry-pick them.
439</p>
440</dd>
441<dt>
442git-format-patch origin
443</dt>
444<dd>
445<p>
Junio C Hamano341071d2006-06-04 07:24:48446 Extract all commits which are in the current branch but
447 not in the origin branch. For each commit a separate file
448 is created in the current directory.
Junio C Hamano1a4e8412005-12-27 08:17:23449</p>
450</dd>
451<dt>
452git-format-patch -M -B origin
453</dt>
454<dd>
455<p>
Junio C Hamano341071d2006-06-04 07:24:48456 The same as the previous one. Additionally, it detects
457 and handles renames and complete rewrites intelligently to
458 produce a renaming patch. A renaming patch reduces the
459 amount of text output, and generally makes it easier to
460 review it. Note that the "patch" program does not
461 understand renaming patches, so use it only when you know
462 the recipient uses git to apply your patch.
Junio C Hamano1a4e8412005-12-27 08:17:23463</p>
464</dd>
Junio C Hamano7c73c662007-01-19 00:37:50465<dt>
466git-format-patch -3
467</dt>
468<dd>
469<p>
470 Extract three topmost commits from the current branch
471 and format them as e-mailable patches.
472</p>
473</dd>
Junio C Hamano1a4e8412005-12-27 08:17:23474</dl>
475</div>
476<h2>See Also</h2>
477<div class="sectionbody">
Junio C Hamano235a91e2006-01-07 01:13:58478<p><a href="git-am.html">git-am(1)</a>, <a href="git-send-email.html">git-send-email(1)</a></p>
Junio C Hamano1a4e8412005-12-27 08:17:23479</div>
480<h2>Author</h2>
481<div class="sectionbody">
482<p>Written by Junio C Hamano &lt;junkio@cox.net&gt;</p>
483</div>
484<h2>Documentation</h2>
485<div class="sectionbody">
486<p>Documentation by Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p>
487</div>
488<h2>GIT</h2>
489<div class="sectionbody">
490<p>Part of the <a href="git.html">git(7)</a> suite</p>
491</div>
492<div id="footer">
493<div id="footer-text">
Junio C Hamano7c73c662007-01-19 00:37:50494Last updated 19-Jan-2007 00:37:19 UTC
Junio C Hamano1a4e8412005-12-27 08:17:23495</div>
496</div>
497</body>
498</html>