blob: 3d3606c2557c881c01dee229a9e0e1f53c06a8f0 [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 Hamano68cf15a2010-11-06 01:01:596<meta name="generator" content="AsciiDoc 8.4.5" />
7<title>git-format-patch(1)</title>
Junio C Hamano1a4e8412005-12-27 08:17:238<style type="text/css">
9/* Debug borders */
10p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11/*
12 border: 1px solid red;
13*/
14}
15
16body {
17 margin: 1em 5% 1em 5%;
18}
19
Junio C Hamanoba4b9282008-07-06 05:20:3120a {
21 color: blue;
22 text-decoration: underline;
23}
24a:visited {
25 color: fuchsia;
26}
Junio C Hamano1a4e8412005-12-27 08:17:2327
28em {
29 font-style: italic;
Junio C Hamano68cf15a2010-11-06 01:01:5930 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:2331}
32
33strong {
34 font-weight: bold;
Junio C Hamano68cf15a2010-11-06 01:01:5935 color: #083194;
Junio C Hamano1a4e8412005-12-27 08:17:2336}
37
38tt {
39 color: navy;
40}
41
42h1, h2, h3, h4, h5, h6 {
43 color: #527bbd;
44 font-family: sans-serif;
45 margin-top: 1.2em;
46 margin-bottom: 0.5em;
47 line-height: 1.3;
48}
49
Junio C Hamanoba4b9282008-07-06 05:20:3150h1, h2, h3 {
Junio C Hamano1a4e8412005-12-27 08:17:2351 border-bottom: 2px solid silver;
52}
53h2 {
Junio C Hamano1a4e8412005-12-27 08:17:2354 padding-top: 0.5em;
55}
Junio C Hamanoba4b9282008-07-06 05:20:3156h3 {
57 float: left;
58}
59h3 + * {
60 clear: left;
61}
Junio C Hamano1a4e8412005-12-27 08:17:2362
63div.sectionbody {
64 font-family: serif;
65 margin-left: 0;
66}
67
68hr {
69 border: 1px solid silver;
70}
71
72p {
73 margin-top: 0.5em;
74 margin-bottom: 0.5em;
75}
76
Junio C Hamano68cf15a2010-11-06 01:01:5977ul, ol, li > p {
78 margin-top: 0;
79}
80
Junio C Hamano1a4e8412005-12-27 08:17:2381pre {
82 padding: 0;
83 margin: 0;
84}
85
86span#author {
87 color: #527bbd;
88 font-family: sans-serif;
89 font-weight: bold;
Junio C Hamanoba4b9282008-07-06 05:20:3190 font-size: 1.1em;
Junio C Hamano1a4e8412005-12-27 08:17:2391}
92span#email {
93}
Junio C Hamano68cf15a2010-11-06 01:01:5994span#revnumber, span#revdate, span#revremark {
Junio C Hamano1a4e8412005-12-27 08:17:2395 font-family: sans-serif;
96}
97
98div#footer {
99 font-family: sans-serif;
100 font-size: small;
101 border-top: 2px solid silver;
102 padding-top: 0.5em;
103 margin-top: 4.0em;
104}
105div#footer-text {
106 float: left;
107 padding-bottom: 0.5em;
108}
109div#footer-badges {
110 float: right;
111 padding-bottom: 0.5em;
112}
113
Junio C Hamano68cf15a2010-11-06 01:01:59114div#preamble {
115 margin-top: 1.5em;
116 margin-bottom: 1.5em;
117}
Junio C Hamano1a4e8412005-12-27 08:17:23118div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
119div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120div.admonitionblock {
Junio C Hamano1a4e8412005-12-27 08:17:23121 margin-top: 1.5em;
122 margin-bottom: 1.5em;
123}
124div.admonitionblock {
125 margin-top: 2.5em;
126 margin-bottom: 2.5em;
127}
128
129div.content { /* Block element content. */
130 padding: 0;
131}
132
133/* Block element titles. */
134div.title, caption.title {
Junio C Hamano68cf15a2010-11-06 01:01:59135 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23136 font-family: sans-serif;
137 font-weight: bold;
138 text-align: left;
139 margin-top: 1.0em;
140 margin-bottom: 0.5em;
141}
142div.title + * {
143 margin-top: 0;
144}
145
146td div.title:first-child {
147 margin-top: 0.0em;
148}
149div.content div.title:first-child {
150 margin-top: 0.0em;
151}
152div.content + div.title {
153 margin-top: 0.0em;
154}
155
156div.sidebarblock > div.content {
157 background: #ffffee;
158 border: 1px solid silver;
159 padding: 0.5em;
160}
161
162div.listingblock > div.content {
163 border: 1px solid silver;
164 background: #f4f4f4;
165 padding: 0.5em;
166}
167
Junio C Hamano68cf15a2010-11-06 01:01:59168div.quoteblock {
Junio C Hamano1a4e8412005-12-27 08:17:23169 padding-left: 2.0em;
Junio C Hamano68cf15a2010-11-06 01:01:59170 margin-right: 10%;
Junio C Hamano1a4e8412005-12-27 08:17:23171}
Junio C Hamano68cf15a2010-11-06 01:01:59172div.quoteblock > div.attribution {
173 padding-top: 0.5em;
Junio C Hamano1a4e8412005-12-27 08:17:23174 text-align: right;
175}
Junio C Hamano68cf15a2010-11-06 01:01:59176
177div.verseblock {
178 padding-left: 2.0em;
179 margin-right: 10%;
180}
181div.verseblock > div.content {
182 white-space: pre;
183}
184div.verseblock > div.attribution {
185 padding-top: 0.75em;
186 text-align: left;
187}
188/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
Junio C Hamanoba4b9282008-07-06 05:20:31189div.verseblock + div.attribution {
190 text-align: left;
191}
Junio C Hamano1a4e8412005-12-27 08:17:23192
193div.admonitionblock .icon {
194 vertical-align: top;
195 font-size: 1.1em;
196 font-weight: bold;
197 text-decoration: underline;
198 color: #527bbd;
199 padding-right: 0.5em;
200}
201div.admonitionblock td.content {
202 padding-left: 0.5em;
203 border-left: 2px solid silver;
204}
205
206div.exampleblock > div.content {
207 border-left: 2px solid silver;
208 padding: 0.5em;
209}
210
Junio C Hamano1a4e8412005-12-27 08:17:23211div.imageblock div.content { padding-left: 0; }
Junio C Hamano1a4e8412005-12-27 08:17:23212span.image img { border-style: none; }
Junio C Hamano68cf15a2010-11-06 01:01:59213a.image:visited { color: white; }
Junio C Hamano1a4e8412005-12-27 08:17:23214
215dl {
216 margin-top: 0.8em;
217 margin-bottom: 0.8em;
218}
219dt {
220 margin-top: 0.5em;
221 margin-bottom: 0;
Junio C Hamano68cf15a2010-11-06 01:01:59222 font-style: normal;
223 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:23224}
225dd > *:first-child {
Junio C Hamano68cf15a2010-11-06 01:01:59226 margin-top: 0.1em;
Junio C Hamano1a4e8412005-12-27 08:17:23227}
228
229ul, ol {
230 list-style-position: outside;
231}
Junio C Hamano68cf15a2010-11-06 01:01:59232ol.arabic {
233 list-style-type: decimal;
234}
235ol.loweralpha {
Junio C Hamano1a4e8412005-12-27 08:17:23236 list-style-type: lower-alpha;
237}
Junio C Hamano68cf15a2010-11-06 01:01:59238ol.upperalpha {
239 list-style-type: upper-alpha;
240}
241ol.lowerroman {
242 list-style-type: lower-roman;
243}
244ol.upperroman {
245 list-style-type: upper-roman;
246}
247
248div.compact ul, div.compact ol,
249div.compact p, div.compact p,
250div.compact div, div.compact div {
251 margin-top: 0.1em;
252 margin-bottom: 0.1em;
253}
Junio C Hamano1a4e8412005-12-27 08:17:23254
255div.tableblock > table {
Junio C Hamanoba4b9282008-07-06 05:20:31256 border: 3px solid #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23257}
258thead {
259 font-family: sans-serif;
260 font-weight: bold;
261}
262tfoot {
263 font-weight: bold;
264}
Junio C Hamano68cf15a2010-11-06 01:01:59265td > div.verse {
266 white-space: pre;
267}
268p.table {
269 margin-top: 0;
270}
271/* Because the table frame attribute is overriden by CSS in most browsers. */
272div.tableblock > table[frame="void"] {
273 border-style: none;
274}
275div.tableblock > table[frame="hsides"] {
276 border-left-style: none;
277 border-right-style: none;
278}
279div.tableblock > table[frame="vsides"] {
280 border-top-style: none;
281 border-bottom-style: none;
282}
Junio C Hamano1a4e8412005-12-27 08:17:23283
Junio C Hamano68cf15a2010-11-06 01:01:59284
285div.hdlist {
Junio C Hamano1a4e8412005-12-27 08:17:23286 margin-top: 0.8em;
287 margin-bottom: 0.8em;
288}
Junio C Hamano68cf15a2010-11-06 01:01:59289div.hdlist tr {
290 padding-bottom: 15px;
Junio C Hamanoba4b9282008-07-06 05:20:31291}
Junio C Hamano68cf15a2010-11-06 01:01:59292dt.hdlist1.strong, td.hdlist1.strong {
293 font-weight: bold;
294}
295td.hdlist1 {
Junio C Hamano1a4e8412005-12-27 08:17:23296 vertical-align: top;
Junio C Hamano68cf15a2010-11-06 01:01:59297 font-style: normal;
Junio C Hamano1a4e8412005-12-27 08:17:23298 padding-right: 0.8em;
Junio C Hamano68cf15a2010-11-06 01:01:59299 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:23300}
Junio C Hamano68cf15a2010-11-06 01:01:59301td.hdlist2 {
Junio C Hamano1a4e8412005-12-27 08:17:23302 vertical-align: top;
303}
Junio C Hamano68cf15a2010-11-06 01:01:59304div.hdlist.compact tr {
305 margin: 0;
306 padding-bottom: 0;
307}
308
309.comment {
310 background: yellow;
311}
Junio C Hamano1a4e8412005-12-27 08:17:23312
313@media print {
314 div#footer-badges { display: none; }
315}
Junio C Hamanoba4b9282008-07-06 05:20:31316
317div#toctitle {
318 color: #527bbd;
319 font-family: sans-serif;
320 font-size: 1.1em;
321 font-weight: bold;
322 margin-top: 1.0em;
323 margin-bottom: 0.1em;
324}
325
326div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
327 margin-top: 0;
328 margin-bottom: 0;
329}
330div.toclevel2 {
331 margin-left: 2em;
332 font-size: 0.9em;
333}
334div.toclevel3 {
335 margin-left: 4em;
336 font-size: 0.9em;
337}
338div.toclevel4 {
339 margin-left: 6em;
340 font-size: 0.9em;
341}
Junio C Hamano68cf15a2010-11-06 01:01:59342/* Overrides for manpage documents */
343h1 {
344 padding-top: 0.5em;
345 padding-bottom: 0.5em;
346 border-top: 2px solid silver;
347 border-bottom: 2px solid silver;
348}
349h2 {
350 border-style: none;
351}
352div.sectionbody {
353 margin-left: 5%;
354}
355
356@media print {
357 div#toc { display: none; }
358}
359
Junio C Hamano1a4e8412005-12-27 08:17:23360/* Workarounds for IE6's broken and incomplete CSS2. */
361
362div.sidebar-content {
363 background: #ffffee;
364 border: 1px solid silver;
365 padding: 0.5em;
366}
367div.sidebar-title, div.image-title {
Junio C Hamano68cf15a2010-11-06 01:01:59368 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23369 font-family: sans-serif;
370 font-weight: bold;
371 margin-top: 0.0em;
372 margin-bottom: 0.5em;
373}
374
375div.listingblock div.content {
376 border: 1px solid silver;
377 background: #f4f4f4;
378 padding: 0.5em;
379}
380
Junio C Hamano68cf15a2010-11-06 01:01:59381div.quoteblock-attribution {
382 padding-top: 0.5em;
383 text-align: right;
384}
385
386div.verseblock-content {
387 white-space: pre;
388}
389div.verseblock-attribution {
390 padding-top: 0.75em;
391 text-align: left;
Junio C Hamano1a4e8412005-12-27 08:17:23392}
393
394div.exampleblock-content {
395 border-left: 2px solid silver;
396 padding-left: 0.5em;
397}
Junio C Hamanoba4b9282008-07-06 05:20:31398
399/* IE6 sets dynamically generated links as visited. */
400div#toc a:visited { color: blue; }
Junio C Hamano1a4e8412005-12-27 08:17:23401</style>
Junio C Hamano1a4e8412005-12-27 08:17:23402</head>
403<body>
404<div id="header">
405<h1>
406git-format-patch(1) Manual Page
407</h1>
408<h2>NAME</h2>
409<div class="sectionbody">
410<p>git-format-patch -
Junio C Hamano01078922006-03-10 00:31:47411 Prepare patches for e-mail submission
Junio C Hamano1a4e8412005-12-27 08:17:23412</p>
413</div>
414</div>
Junio C Hamano68cf15a2010-11-06 01:01:59415<h2 id="_synopsis">SYNOPSIS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23416<div class="sectionbody">
Junio C Hamano235a91e2006-01-07 01:13:58417<div class="verseblock">
Junio C Hamano68cf15a2010-11-06 01:01:59418<div class="verseblock-content"><em>git format-patch</em> [-k] [(-o|--output-directory) &lt;dir&gt; | --stdout]
Junio C Hamano1bbd0f42009-07-23 06:20:29419 [--no-thread | --thread[=&lt;style&gt;]]
Junio C Hamanof4581102009-04-25 08:29:59420 [(--attach|--inline)[=&lt;boundary&gt;] | --no-attach]
421 [-s | --signoff]
Junio C Hamano89a57342010-06-22 23:22:55422 [--signature=&lt;signature&gt; | --no-signature]
Junio C Hamano8c5802d2007-11-15 00:13:36423 [-n | --numbered | -N | --no-numbered]
Junio C Hamano94cad1a2007-06-06 10:48:25424 [--start-number &lt;n&gt;] [--numbered-files]
Junio C Hamano4f9a6052007-01-17 20:25:16425 [--in-reply-to=Message-Id] [--suffix=.&lt;sfx&gt;]
Junio C Hamano7c73c662007-01-19 00:37:50426 [--ignore-if-in-upstream]
Junio C Hamano6f1cca82007-04-12 05:02:47427 [--subject-prefix=Subject-Prefix]
Junio C Hamanoea90ab32010-03-15 20:32:55428 [--to=&lt;email&gt;] [--cc=&lt;email&gt;]
Junio C Hamano209ebe82011-04-27 21:09:59429 [--cover-letter] [--quiet]
Junio C Hamanof4581102009-04-25 08:29:59430 [&lt;common diff options&gt;]
Junio C Hamano68cf15a2010-11-06 01:01:59431 [ &lt;since&gt; | &lt;revision range&gt; ]</div>
432<div class="verseblock-attribution">
433</div></div>
Junio C Hamano1a4e8412005-12-27 08:17:23434</div>
Junio C Hamanoba4b9282008-07-06 05:20:31435<h2 id="_description">DESCRIPTION</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23436<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59437<div class="paragraph"><p>Prepare each commit with its patch in
Junio C Hamano341071d2006-06-04 07:24:48438one file per commit, formatted to resemble UNIX mailbox format.
Junio C Hamano7d9e9bd2007-08-29 07:31:47439The output of this command is convenient for e-mail submission or
Junio C Hamano1aa40d22010-01-21 17:46:43440for use with <em>git am</em>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59441<div class="paragraph"><p>There are two ways to specify which commits to operate on.</p></div>
442<div class="olist arabic"><ol class="arabic">
Junio C Hamano7d9e9bd2007-08-29 07:31:47443<li>
444<p>
445A single commit, &lt;since&gt;, specifies that the commits leading
446 to the tip of the current branch that are not in the history
447 that leads to the &lt;since&gt; to be output.
448</p>
449</li>
450<li>
451<p>
452Generic &lt;revision range&gt; expression (see "SPECIFYING
Junio C Hamanoc27b7332010-10-14 04:37:28453 REVISIONS" section in <a href="gitrevisions.html">gitrevisions(7)</a>) means the
Junio C Hamano7d9e9bd2007-08-29 07:31:47454 commits in the specified range.
455</p>
456</li>
Junio C Hamanoba4b9282008-07-06 05:20:31457</ol></div>
Junio C Hamano68cf15a2010-11-06 01:01:59458<div class="paragraph"><p>The first rule takes precedence in the case of a single &lt;commit&gt;. To
Junio C Hamano9572e922009-04-02 06:52:03459apply the second rule, i.e., format everything since the beginning of
Junio C Hamano3b70d3c2009-11-21 17:37:37460history up until &lt;commit&gt;, use the <em>--root</em> option: <tt>git format-patch
461--root &lt;commit&gt;</tt>. If you want to format only &lt;commit&gt; itself, you
462can do this with <tt>git format-patch -1 &lt;commit&gt;</tt>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59463<div class="paragraph"><p>By default, each output file is numbered sequentially from 1, and uses the
Junio C Hamano341071d2006-06-04 07:24:48464first line of the commit message (massaged for pathname safety) as
Junio C Hamano3b70d3c2009-11-21 17:37:37465the filename. With the <tt>--numbered-files</tt> option, the output file names
Junio C Hamano94cad1a2007-06-06 10:48:25466will only be numbers, without the first line of the commit appended.
467The names of the output files are printed to standard
Junio C Hamano3b70d3c2009-11-21 17:37:37468output, unless the <tt>--stdout</tt> option is specified.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59469<div class="paragraph"><p>If <tt>-o</tt> is specified, output files are created in &lt;dir&gt;. Otherwise
Junio C Hamanoba4b9282008-07-06 05:20:31470they are created in the current working directory.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59471<div class="paragraph"><p>By default, the subject of a single patch is "[PATCH] First Line" and
Junio C Hamano7d06a8a2008-10-20 05:42:33472the subject when multiple patches are output is "[PATCH n/m] First
Junio C Hamano3b70d3c2009-11-21 17:37:37473Line". To force 1/1 to be added for a single patch, use <tt>-n</tt>. To omit
474patch numbers from the subject, use <tt>-N</tt>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59475<div class="paragraph"><p>If given <tt>--thread</tt>, <tt>git-format-patch</tt> will generate <tt>In-Reply-To</tt> and
Junio C Hamano3b70d3c2009-11-21 17:37:37476<tt>References</tt> headers to make the second and subsequent patch mails appear
477as replies to the first mail; this also generates a <tt>Message-Id</tt> header to
Junio C Hamanoba4b9282008-07-06 05:20:31478reference.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23479</div>
Junio C Hamanoba4b9282008-07-06 05:20:31480<h2 id="_options">OPTIONS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23481<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59482<div class="dlist"><dl>
483<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26484-p
485</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59486<dt class="hdlist1">
Junio C Hamano3b70d3c2009-11-21 17:37:37487--no-stat
488</dt>
Junio C Hamano60f8aa82007-03-06 09:58:26489<dd>
490<p>
Junio C Hamano3b70d3c2009-11-21 17:37:37491 Generate plain patches without any diffstats.
Junio C Hamano60f8aa82007-03-06 09:58:26492</p>
493</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59494<dt class="hdlist1">
Junio C Hamano69361562007-07-26 02:14:34495-U&lt;n&gt;
496</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59497<dt class="hdlist1">
Junio C Hamano69361562007-07-26 02:14:34498--unified=&lt;n&gt;
499</dt>
500<dd>
501<p>
502 Generate diffs with &lt;n&gt; lines of context instead of
Junio C Hamano3b70d3c2009-11-21 17:37:37503 the usual three.
Junio C Hamano60f8aa82007-03-06 09:58:26504</p>
505</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59506<dt class="hdlist1">
Junio C Hamano20d47e32009-01-26 06:36:02507--patience
508</dt>
509<dd>
510<p>
511 Generate a diff using the "patience diff" algorithm.
512</p>
513</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59514<dt class="hdlist1">
Junio C Hamano4c4b0122011-06-30 01:19:32515--stat[=&lt;width&gt;[,&lt;name-width&gt;[,&lt;count&gt;]]]
Junio C Hamano60f8aa82007-03-06 09:58:26516</dt>
517<dd>
518<p>
519 Generate a diffstat. You can override the default
Junio C Hamanod2179ef2010-10-22 04:12:17520 output width for 80-column terminal by <tt>--stat=&lt;width&gt;</tt>.
Junio C Hamano60f8aa82007-03-06 09:58:26521 The width of the filename part can be controlled by
522 giving another width to it separated by a comma.
Junio C Hamano4c4b0122011-06-30 01:19:32523 By giving a third parameter <tt>&lt;count&gt;</tt>, you can limit the
524 output to the first <tt>&lt;count&gt;</tt> lines, followed by
525 <tt>&#8230;</tt> if there are more.
Junio C Hamano60f8aa82007-03-06 09:58:26526</p>
Junio C Hamano4c4b0122011-06-30 01:19:32527<div class="paragraph"><p>These parameters can also be set individually with <tt>--stat-width=&lt;width&gt;</tt>,
528<tt>--stat-name-width=&lt;name-width&gt;</tt> and <tt>--stat-count=&lt;count&gt;</tt>.</p></div>
Junio C Hamano60f8aa82007-03-06 09:58:26529</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59530<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26531--numstat
532</dt>
533<dd>
534<p>
Junio C Hamano3b70d3c2009-11-21 17:37:37535 Similar to <tt>--stat</tt>, but shows number of added and
Junio C Hamano60f8aa82007-03-06 09:58:26536 deleted lines in decimal notation and pathname without
537 abbreviation, to make it more machine friendly. For
538 binary files, outputs two <tt>-</tt> instead of saying
539 <tt>0 0</tt>.
540</p>
541</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59542<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26543--shortstat
544</dt>
545<dd>
546<p>
Junio C Hamano3b70d3c2009-11-21 17:37:37547 Output only the last line of the <tt>--stat</tt> format containing total
Junio C Hamano60f8aa82007-03-06 09:58:26548 number of modified files, as well as number of added and deleted
549 lines.
550</p>
551</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59552<dt class="hdlist1">
Junio C Hamano1c222c52011-05-13 19:55:32553--dirstat[=&lt;param1,param2,&#8230;&gt;]
Junio C Hamano6a45be92008-04-22 08:19:03554</dt>
555<dd>
556<p>
Junio C Hamano1c222c52011-05-13 19:55:32557 Output the distribution of relative amount of changes for each
558 sub-directory. The behavior of <tt>--dirstat</tt> can be customized by
559 passing it a comma separated list of parameters.
560 The defaults are controlled by the <tt>diff.dirstat</tt> configuration
561 variable (see <a href="git-config.html">git-config(1)</a>).
562 The following parameters are available:
Junio C Hamano6a45be92008-04-22 08:19:03563</p>
Junio C Hamano1c222c52011-05-13 19:55:32564<div class="dlist"><dl>
565<dt class="hdlist1">
566<tt>changes</tt>
567</dt>
568<dd>
569<p>
570 Compute the dirstat numbers by counting the lines that have been
571 removed from the source, or added to the destination. This ignores
572 the amount of pure code movements within a file. In other words,
573 rearranging lines in a file is not counted as much as other changes.
574 This is the default behavior when no parameter is given.
575</p>
Junio C Hamano6a45be92008-04-22 08:19:03576</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59577<dt class="hdlist1">
Junio C Hamano1c222c52011-05-13 19:55:32578<tt>lines</tt>
Junio C Hamanoa476efa2008-10-10 15:31:42579</dt>
580<dd>
581<p>
Junio C Hamano1c222c52011-05-13 19:55:32582 Compute the dirstat numbers by doing the regular line-based diff
583 analysis, and summing the removed/added line counts. (For binary
584 files, count 64-byte chunks instead, since binary files have no
585 natural concept of lines). This is a more expensive <tt>--dirstat</tt>
586 behavior than the <tt>changes</tt> behavior, but it does count rearranged
587 lines within a file as much as other changes. The resulting output
588 is consistent with what you get from the other <tt>--*stat</tt> options.
Junio C Hamanoa476efa2008-10-10 15:31:42589</p>
590</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59591<dt class="hdlist1">
Junio C Hamano1c222c52011-05-13 19:55:32592<tt>files</tt>
593</dt>
594<dd>
595<p>
596 Compute the dirstat numbers by counting the number of files changed.
597 Each changed file counts equally in the dirstat analysis. This is
598 the computationally cheapest <tt>--dirstat</tt> behavior, since it does
599 not have to look at the file contents at all.
600</p>
601</dd>
602<dt class="hdlist1">
603<tt>cumulative</tt>
604</dt>
605<dd>
606<p>
607 Count changes in a child directory for the parent directory as well.
608 Note that when using <tt>cumulative</tt>, the sum of the percentages
609 reported may exceed 100%. The default (non-cumulative) behavior can
610 be specified with the <tt>noncumulative</tt> parameter.
611</p>
612</dd>
613<dt class="hdlist1">
614&lt;limit&gt;
615</dt>
616<dd>
617<p>
618 An integer parameter specifies a cut-off percent (3% by default).
619 Directories contributing less than this percentage of the changes
620 are not shown in the output.
621</p>
622</dd>
623</dl></div>
624<div class="paragraph"><p>Example: The following will count changed files, while ignoring
625directories with less than 10% of the total amount of changed files,
626and accumulating child directory counts in the parent directories:
627<tt>--dirstat=files,10,cumulative</tt>.</p></div>
628</dd>
629<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26630--summary
631</dt>
632<dd>
633<p>
634 Output a condensed summary of extended header information
635 such as creations, renames and mode changes.
636</p>
637</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59638<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26639--no-renames
640</dt>
641<dd>
642<p>
643 Turn off rename detection, even when the configuration
644 file gives the default to do so.
645</p>
646</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59647<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26648--full-index
649</dt>
650<dd>
651<p>
Junio C Hamano5cf43ca2008-08-20 09:14:14652 Instead of the first handful of characters, show the full
653 pre- and post-image blob object names on the "index"
654 line when generating patch format output.
Junio C Hamano60f8aa82007-03-06 09:58:26655</p>
656</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59657<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26658--binary
659</dt>
660<dd>
661<p>
Junio C Hamano3b70d3c2009-11-21 17:37:37662 In addition to <tt>--full-index</tt>, output a binary diff that
663 can be applied with <tt>git-apply</tt>.
Junio C Hamano60f8aa82007-03-06 09:58:26664</p>
665</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59666<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26667--abbrev[=&lt;n&gt;]
668</dt>
669<dd>
670<p>
671 Instead of showing the full 40-byte hexadecimal object
672 name in diff-raw format output and diff-tree header
Junio C Hamano6efe3022009-01-13 16:47:56673 lines, show only a partial prefix. This is
Junio C Hamano3b70d3c2009-11-21 17:37:37674 independent of the <tt>--full-index</tt> option above, which controls
Junio C Hamano60f8aa82007-03-06 09:58:26675 the diff-patch output format. Non default number of
Junio C Hamano3b70d3c2009-11-21 17:37:37676 digits can be specified with <tt>--abbrev=&lt;n&gt;</tt>.
Junio C Hamano60f8aa82007-03-06 09:58:26677</p>
678</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59679<dt class="hdlist1">
Junio C Hamanoe85e36f2010-08-10 05:30:14680-B[&lt;n&gt;][/&lt;m&gt;]
Junio C Hamano60f8aa82007-03-06 09:58:26681</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59682<dt class="hdlist1">
Junio C Hamano39c7a692010-10-27 06:08:54683--break-rewrites[=[&lt;n&gt;][/&lt;m&gt;]]
684</dt>
Junio C Hamano60f8aa82007-03-06 09:58:26685<dd>
686<p>
Junio C Hamanoe85e36f2010-08-10 05:30:14687 Break complete rewrite changes into pairs of delete and
688 create. This serves two purposes:
Junio C Hamano60f8aa82007-03-06 09:58:26689</p>
Junio C Hamano68cf15a2010-11-06 01:01:59690<div class="paragraph"><p>It affects the way a change that amounts to a total rewrite of a file
Junio C Hamanoe85e36f2010-08-10 05:30:14691not as a series of deletion and insertion mixed together with a very
692few lines that happen to match textually as the context, but as a
693single deletion of everything old followed by a single insertion of
694everything new, and the number <tt>m</tt> controls this aspect of the -B
695option (defaults to 60%). <tt>-B/70%</tt> specifies that less than 30% of the
696original should remain in the result for git to consider it a total
697rewrite (i.e. otherwise the resulting patch will be a series of
698deletion and insertion mixed together with context lines).</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59699<div class="paragraph"><p>When used with -M, a totally-rewritten file is also considered as the
Junio C Hamanoe85e36f2010-08-10 05:30:14700source of a rename (usually -M only considers a file that disappeared
701as the source of a rename), and the number <tt>n</tt> controls this aspect of
702the -B option (defaults to 50%). <tt>-B20%</tt> specifies that a change with
Junio C Hamano68cf15a2010-11-06 01:01:59703addition and deletion compared to 20% or more of the file&#8217;s size are
Junio C Hamanoe85e36f2010-08-10 05:30:14704eligible for being picked up as a possible source of a rename to
705another file.</p></div>
Junio C Hamano60f8aa82007-03-06 09:58:26706</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59707<dt class="hdlist1">
Junio C Hamanoe85e36f2010-08-10 05:30:14708-M[&lt;n&gt;]
Junio C Hamano60f8aa82007-03-06 09:58:26709</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59710<dt class="hdlist1">
Junio C Hamano0d75e872010-12-17 06:57:26711--find-renames[=&lt;n&gt;]
Junio C Hamano39c7a692010-10-27 06:08:54712</dt>
Junio C Hamano60f8aa82007-03-06 09:58:26713<dd>
714<p>
715 Detect renames.
Junio C Hamano5f2627d2011-05-06 20:23:48716 If <tt>n</tt> is specified, it is a threshold on the similarity
Junio C Hamanoe85e36f2010-08-10 05:30:14717 index (i.e. amount of addition/deletions compared to the
Junio C Hamano68cf15a2010-11-06 01:01:59718 file&#8217;s size). For example, <tt>-M90%</tt> means git should consider a
Junio C Hamanoe85e36f2010-08-10 05:30:14719 delete/add pair to be a rename if more than 90% of the file
Junio C Hamano68cf15a2010-11-06 01:01:59720 hasn&#8217;t changed.
Junio C Hamano60f8aa82007-03-06 09:58:26721</p>
722</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59723<dt class="hdlist1">
Junio C Hamanoe85e36f2010-08-10 05:30:14724-C[&lt;n&gt;]
Junio C Hamano60f8aa82007-03-06 09:58:26725</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59726<dt class="hdlist1">
Junio C Hamano0d75e872010-12-17 06:57:26727--find-copies[=&lt;n&gt;]
Junio C Hamano39c7a692010-10-27 06:08:54728</dt>
Junio C Hamano60f8aa82007-03-06 09:58:26729<dd>
730<p>
Junio C Hamano16f98872007-06-12 16:09:14731 Detect copies as well as renames. See also <tt>--find-copies-harder</tt>.
Junio C Hamanoe85e36f2010-08-10 05:30:14732 If <tt>n</tt> is specified, it has the same meaning as for <tt>-M&lt;n&gt;</tt>.
Junio C Hamano60f8aa82007-03-06 09:58:26733</p>
734</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59735<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26736--find-copies-harder
737</dt>
738<dd>
739<p>
Junio C Hamano16f98872007-06-12 16:09:14740 For performance reasons, by default, <tt>-C</tt> option finds copies only
Junio C Hamano60f8aa82007-03-06 09:58:26741 if the original file of the copy was modified in the same
742 changeset. This flag makes the command
743 inspect unmodified files as candidates for the source of
744 copy. This is a very expensive operation for large
Junio C Hamano16f98872007-06-12 16:09:14745 projects, so use it with caution. Giving more than one
746 <tt>-C</tt> option has the same effect.
Junio C Hamano60f8aa82007-03-06 09:58:26747</p>
748</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59749<dt class="hdlist1">
Junio C Hamanob02377c2011-04-28 22:26:02750-D
751</dt>
752<dt class="hdlist1">
753--irreversible-delete
754</dt>
755<dd>
756<p>
757 Omit the preimage for deletes, i.e. print only the header but not
758 the diff between the preimage and <tt>/dev/null</tt>. The resulting patch
759 is not meant to be applied with <tt>patch</tt> nor <tt>git apply</tt>; this is
760 solely for people who want to just concentrate on reviewing the
761 text after the change. In addition, the output obviously lack
762 enough information to apply such a patch in reverse, even manually,
763 hence the name of the option.
764</p>
765<div class="paragraph"><p>When used together with <tt>-B</tt>, omit also the preimage in the deletion part
766of a delete/create pair.</p></div>
767</dd>
768<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26769-l&lt;num&gt;
770</dt>
771<dd>
772<p>
Junio C Hamano3b70d3c2009-11-21 17:37:37773 The <tt>-M</tt> and <tt>-C</tt> options require O(n^2) processing time where n
Junio C Hamano60f8aa82007-03-06 09:58:26774 is the number of potential rename/copy targets. This
775 option prevents rename/copy detection from running if
776 the number of rename/copy targets exceeds the specified
777 number.
778</p>
779</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59780<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26781-O&lt;orderfile&gt;
782</dt>
783<dd>
784<p>
785 Output the patch in the order specified in the
786 &lt;orderfile&gt;, which has one shell glob pattern per line.
787</p>
788</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59789<dt class="hdlist1">
Junio C Hamanobbbb8652008-12-29 10:34:22790-a
791</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59792<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26793--text
794</dt>
795<dd>
796<p>
797 Treat all files as text.
798</p>
799</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59800<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26801--ignore-space-at-eol
802</dt>
803<dd>
804<p>
Junio C Hamano3a702342007-12-12 21:34:02805 Ignore changes in whitespace at EOL.
Junio C Hamano60f8aa82007-03-06 09:58:26806</p>
807</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59808<dt class="hdlist1">
Junio C Hamanobbbb8652008-12-29 10:34:22809-b
810</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59811<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26812--ignore-space-change
813</dt>
814<dd>
815<p>
Junio C Hamano3a702342007-12-12 21:34:02816 Ignore changes in amount of whitespace. This ignores whitespace
817 at line end, and considers all other sequences of one or
818 more whitespace characters to be equivalent.
Junio C Hamano60f8aa82007-03-06 09:58:26819</p>
820</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59821<dt class="hdlist1">
Junio C Hamanobbbb8652008-12-29 10:34:22822-w
Junio C Hamano60f8aa82007-03-06 09:58:26823</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59824<dt class="hdlist1">
Junio C Hamano60f8aa82007-03-06 09:58:26825--ignore-all-space
826</dt>
827<dd>
828<p>
Junio C Hamano3a702342007-12-12 21:34:02829 Ignore whitespace when comparing lines. This ignores
830 differences even if one line has whitespace where the other
Junio C Hamano60f8aa82007-03-06 09:58:26831 line has none.
832</p>
833</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59834<dt class="hdlist1">
Junio C Hamano1d40ee82009-01-07 10:14:16835--inter-hunk-context=&lt;lines&gt;
836</dt>
837<dd>
838<p>
839 Show the context between diff hunks, up to the specified number
840 of lines, thereby fusing hunks that are close to each other.
841</p>
842</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59843<dt class="hdlist1">
Junio C Hamanobb0f4042007-07-04 06:41:40844--ext-diff
845</dt>
846<dd>
847<p>
848 Allow an external diff helper to be executed. If you set an
Junio C Hamano1b50ce92007-10-03 12:05:53849 external diff driver with <a href="gitattributes.html">gitattributes(5)</a>, you need
850 to use this option with <a href="git-log.html">git-log(1)</a> and friends.
Junio C Hamanobb0f4042007-07-04 06:41:40851</p>
852</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59853<dt class="hdlist1">
Junio C Hamanobb0f4042007-07-04 06:41:40854--no-ext-diff
855</dt>
856<dd>
857<p>
858 Disallow external diff drivers.
859</p>
860</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59861<dt class="hdlist1">
Junio C Hamanoc652aed2011-07-07 01:14:31862--textconv
863</dt>
864<dt class="hdlist1">
865--no-textconv
866</dt>
867<dd>
868<p>
869 Allow (or disallow) external text conversion filters to be run
870 when comparing binary files. See <a href="gitattributes.html">gitattributes(5)</a> for
871 details. Because textconv filters are typically a one-way
872 conversion, the resulting diff is suitable for human
873 consumption, but cannot be applied. For this reason, textconv
874 filters are enabled by default only for <a href="git-diff.html">git-diff(1)</a> and
875 <a href="git-log.html">git-log(1)</a>, but not for <a href="git-format-patch.html">git-format-patch(1)</a> or
876 diff plumbing commands.
877</p>
878</dd>
879<dt class="hdlist1">
Junio C Hamano7d449522010-07-01 00:08:51880--ignore-submodules[=&lt;when&gt;]
Junio C Hamanodfccbb02008-05-26 01:16:14881</dt>
882<dd>
883<p>
Junio C Hamano7d449522010-07-01 00:08:51884 Ignore changes to submodules in the diff generation. &lt;when&gt; can be
Junio C Hamano619596a2010-08-18 22:15:35885 either "none", "untracked", "dirty" or "all", which is the default
886 Using "none" will consider the submodule modified when it either contains
887 untracked or modified files or its HEAD differs from the commit recorded
888 in the superproject and can be used to override any settings of the
889 <em>ignore</em> option in <a href="git-config.html">git-config(1)</a> or <a href="gitmodules.html">gitmodules(5)</a>. When
Junio C Hamano7d449522010-07-01 00:08:51890 "untracked" is used submodules are not considered dirty when they only
891 contain untracked content (but they are still scanned for modified
892 content). Using "dirty" ignores all changes to the work tree of submodules,
893 only changes to the commits stored in the superproject are shown (this was
894 the behavior until 1.7.0). Using "all" hides all changes to submodules.
Junio C Hamanodfccbb02008-05-26 01:16:14895</p>
896</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59897<dt class="hdlist1">
Junio C Hamanoe27cbd22007-12-21 17:57:33898--src-prefix=&lt;prefix&gt;
899</dt>
900<dd>
901<p>
902 Show the given source prefix instead of "a/".
903</p>
904</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59905<dt class="hdlist1">
Junio C Hamanoe27cbd22007-12-21 17:57:33906--dst-prefix=&lt;prefix&gt;
907</dt>
908<dd>
909<p>
910 Show the given destination prefix instead of "b/".
911</p>
912</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59913<dt class="hdlist1">
Junio C Hamanoe27cbd22007-12-21 17:57:33914--no-prefix
915</dt>
916<dd>
917<p>
918 Do not show any source or destination prefix.
919</p>
920</dd>
Junio C Hamanoba4b9282008-07-06 05:20:31921</dl></div>
Junio C Hamano68cf15a2010-11-06 01:01:59922<div class="paragraph"><p>For more detailed explanation on these common options, see also
Junio C Hamanoba4b9282008-07-06 05:20:31923<a href="gitdiffcore.html">gitdiffcore(7)</a>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59924<div class="dlist"><dl>
925<dt class="hdlist1">
Junio C Hamanobb0f4042007-07-04 06:41:40926-&lt;n&gt;
927</dt>
928<dd>
929<p>
Junio C Hamano3b4609d2010-09-30 00:04:34930 Prepare patches from the topmost &lt;n&gt; commits.
Junio C Hamanobb0f4042007-07-04 06:41:40931</p>
932</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59933<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47934-o &lt;dir&gt;
935</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59936<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47937--output-directory &lt;dir&gt;
Junio C Hamano1a4e8412005-12-27 08:17:23938</dt>
939<dd>
940<p>
941 Use &lt;dir&gt; to store the resulting files, instead of the
Junio C Hamano1bab4b02006-06-06 21:58:33942 current working directory.
Junio C Hamano1a4e8412005-12-27 08:17:23943</p>
944</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59945<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47946-n
947</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59948<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47949--numbered
Junio C Hamano1a4e8412005-12-27 08:17:23950</dt>
951<dd>
952<p>
Junio C Hamano7d06a8a2008-10-20 05:42:33953 Name output in <em>[PATCH n/m]</em> format, even with a single patch.
Junio C Hamano1a4e8412005-12-27 08:17:23954</p>
955</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59956<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47957-N
958</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59959<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47960--no-numbered
Junio C Hamano8c5802d2007-11-15 00:13:36961</dt>
962<dd>
963<p>
964 Name output in <em>[PATCH]</em> format.
965</p>
966</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59967<dt class="hdlist1">
Junio C Hamano341071d2006-06-04 07:24:48968--start-number &lt;n&gt;
969</dt>
970<dd>
971<p>
972 Start numbering the patches at &lt;n&gt; instead of 1.
973</p>
974</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59975<dt class="hdlist1">
Junio C Hamano94cad1a2007-06-06 10:48:25976--numbered-files
977</dt>
978<dd>
979<p>
980 Output file names will be a simple number sequence
981 without the default first line of the commit appended.
Junio C Hamano94cad1a2007-06-06 10:48:25982</p>
983</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59984<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47985-k
986</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59987<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47988--keep-subject
Junio C Hamano1a4e8412005-12-27 08:17:23989</dt>
990<dd>
991<p>
992 Do not strip/add <em>[PATCH]</em> from the first line of the
993 commit log message.
994</p>
995</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59996<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47997-s
998</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59999<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:471000--signoff
Junio C Hamano1a4e8412005-12-27 08:17:231001</dt>
1002<dd>
1003<p>
1004 Add <tt>Signed-off-by:</tt> line to the commit message, using
1005 the committer identity of yourself.
1006</p>
1007</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591008<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:231009--stdout
1010</dt>
1011<dd>
1012<p>
Junio C Hamano341071d2006-06-04 07:24:481013 Print all commits to the standard output in mbox format,
1014 instead of creating a file for each one.
Junio C Hamano1a4e8412005-12-27 08:17:231015</p>
1016</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591017<dt class="hdlist1">
Junio C Hamanoc51fede2007-03-12 07:29:201018--attach[=&lt;boundary&gt;]
Junio C Hamano2496ae42006-03-11 08:04:331019</dt>
1020<dd>
1021<p>
Junio C Hamanoc51fede2007-03-12 07:29:201022 Create multipart/mixed attachment, the first part of
1023 which is the commit message and the patch itself in the
Junio C Hamano3b70d3c2009-11-21 17:37:371024 second part, with <tt>Content-Disposition: attachment</tt>.
Junio C Hamanoc51fede2007-03-12 07:29:201025</p>
1026</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591027<dt class="hdlist1">
Junio C Hamano0a235222009-03-06 08:21:091028--no-attach
1029</dt>
1030<dd>
1031<p>
1032 Disable the creation of an attachment, overriding the
1033 configuration setting.
1034</p>
1035</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591036<dt class="hdlist1">
Junio C Hamanoc51fede2007-03-12 07:29:201037--inline[=&lt;boundary&gt;]
1038</dt>
1039<dd>
1040<p>
1041 Create multipart/mixed attachment, the first part of
1042 which is the commit message and the patch itself in the
Junio C Hamano3b70d3c2009-11-21 17:37:371043 second part, with <tt>Content-Disposition: inline</tt>.
Junio C Hamano2496ae42006-03-11 08:04:331044</p>
1045</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591046<dt class="hdlist1">
Junio C Hamanoea6a7642009-03-11 23:56:191047--thread[=&lt;style&gt;]
Junio C Hamanof9ca97d2006-07-25 22:23:091048</dt>
Junio C Hamano68cf15a2010-11-06 01:01:591049<dt class="hdlist1">
Junio C Hamano1bbd0f42009-07-23 06:20:291050--no-thread
1051</dt>
Junio C Hamanof9ca97d2006-07-25 22:23:091052<dd>
1053<p>
Junio C Hamano3b70d3c2009-11-21 17:37:371054 Controls addition of <tt>In-Reply-To</tt> and <tt>References</tt> headers to
Junio C Hamano1bbd0f42009-07-23 06:20:291055 make the second and subsequent mails appear as replies to the
Junio C Hamano3b70d3c2009-11-21 17:37:371056 first. Also controls generation of the <tt>Message-Id</tt> header to
Junio C Hamano1bbd0f42009-07-23 06:20:291057 reference.
Junio C Hamanof9ca97d2006-07-25 22:23:091058</p>
Junio C Hamano68cf15a2010-11-06 01:01:591059<div class="paragraph"><p>The optional &lt;style&gt; argument can be either <tt>shallow</tt> or <tt>deep</tt>.
Junio C Hamanof4581102009-04-25 08:29:591060<em>shallow</em> threading makes every mail a reply to the head of the
Junio C Hamanoea6a7642009-03-11 23:56:191061series, where the head is chosen from the cover letter, the
Junio C Hamanof4581102009-04-25 08:29:591062<tt>--in-reply-to</tt>, and the first patch mail, in this order. <em>deep</em>
Junio C Hamano1bbd0f42009-07-23 06:20:291063threading makes every mail a reply to the previous one.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591064<div class="paragraph"><p>The default is <tt>--no-thread</tt>, unless the <em>format.thread</em> configuration
Junio C Hamano3b70d3c2009-11-21 17:37:371065is set. If <tt>--thread</tt> is specified without a style, it defaults to the
Junio C Hamano1bbd0f42009-07-23 06:20:291066style specified by <em>format.thread</em> if any, or else <tt>shallow</tt>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591067<div class="paragraph"><p>Beware that the default for <em>git send-email</em> is to thread emails
Junio C Hamano3b70d3c2009-11-21 17:37:371068itself. If you want <tt>git format-patch</tt> to take care of threading, you
1069will want to ensure that threading is disabled for <tt>git send-email</tt>.</p></div>
Junio C Hamanof9ca97d2006-07-25 22:23:091070</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591071<dt class="hdlist1">
Junio C Hamanof9ca97d2006-07-25 22:23:091072--in-reply-to=Message-Id
1073</dt>
1074<dd>
1075<p>
Junio C Hamano3b70d3c2009-11-21 17:37:371076 Make the first mail (or all the mails with <tt>--no-thread</tt>) appear as a
Junio C Hamanof9ca97d2006-07-25 22:23:091077 reply to the given Message-Id, which avoids breaking threads to
1078 provide a new patch series.
1079</p>
1080</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591081<dt class="hdlist1">
Junio C Hamano7c73c662007-01-19 00:37:501082--ignore-if-in-upstream
1083</dt>
1084<dd>
1085<p>
1086 Do not include a patch that matches a commit in
1087 &lt;until&gt;..&lt;since&gt;. This will examine all patches reachable
1088 from &lt;since&gt; but not from &lt;until&gt; and compare them with the
1089 patches being generated, and any patch that matches is
1090 ignored.
1091</p>
1092</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591093<dt class="hdlist1">
Junio C Hamano6f1cca82007-04-12 05:02:471094--subject-prefix=&lt;Subject-Prefix&gt;
1095</dt>
1096<dd>
1097<p>
1098 Instead of the standard <em>[PATCH]</em> prefix in the subject
1099 line, instead use <em>[&lt;Subject-Prefix&gt;]</em>. This
1100 allows for useful naming of a patch series, and can be
Junio C Hamano3b70d3c2009-11-21 17:37:371101 combined with the <tt>--numbered</tt> option.
Junio C Hamano6f1cca82007-04-12 05:02:471102</p>
1103</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591104<dt class="hdlist1">
Junio C Hamanoea90ab32010-03-15 20:32:551105--to=&lt;email&gt;
1106</dt>
1107<dd>
1108<p>
1109 Add a <tt>To:</tt> header to the email headers. This is in addition
1110 to any configured headers, and may be used multiple times.
1111</p>
1112</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591113<dt class="hdlist1">
Junio C Hamano24bc09a2008-02-28 00:27:441114--cc=&lt;email&gt;
1115</dt>
1116<dd>
1117<p>
Junio C Hamano3b70d3c2009-11-21 17:37:371118 Add a <tt>Cc:</tt> header to the email headers. This is in addition
Junio C Hamano24bc09a2008-02-28 00:27:441119 to any configured headers, and may be used multiple times.
1120</p>
1121</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591122<dt class="hdlist1">
Junio C Hamano9572e922009-04-02 06:52:031123--add-header=&lt;header&gt;
1124</dt>
1125<dd>
1126<p>
1127 Add an arbitrary header to the email headers. This is in addition
1128 to any configured headers, and may be used multiple times.
Junio C Hamano3b70d3c2009-11-21 17:37:371129 For example, <tt>--add-header="Organization: git-foo"</tt>
Junio C Hamano9572e922009-04-02 06:52:031130</p>
1131</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591132<dt class="hdlist1">
Junio C Hamano24bc09a2008-02-28 00:27:441133--cover-letter
1134</dt>
1135<dd>
1136<p>
Junio C Hamano92a4abd2008-08-15 05:34:441137 In addition to the patches, generate a cover letter file
1138 containing the shortlog and the overall diffstat. You can
1139 fill in a description in the file before sending it out.
Junio C Hamano24bc09a2008-02-28 00:27:441140</p>
1141</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591142<dt class="hdlist1">
Junio C Hamano89a57342010-06-22 23:22:551143--[no]-signature=&lt;signature&gt;
1144</dt>
1145<dd>
1146<p>
1147 Add a signature to each message produced. Per RFC 3676 the signature
Junio C Hamano68cf15a2010-11-06 01:01:591148 is separated from the body by a line with '-- ' on it. If the
Junio C Hamano89a57342010-06-22 23:22:551149 signature option is omitted the signature defaults to the git version
1150 number.
1151</p>
1152</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591153<dt class="hdlist1">
Junio C Hamano4f9a6052007-01-17 20:25:161154--suffix=.&lt;sfx&gt;
1155</dt>
1156<dd>
1157<p>
Junio C Hamano7c73c662007-01-19 00:37:501158 Instead of using <tt>.patch</tt> as the suffix for generated
Junio C Hamanoa6387422007-08-25 03:54:271159 filenames, use specified suffix. A common alternative is
Junio C Hamanof4581102009-04-25 08:29:591160 <tt>--suffix=.txt</tt>. Leaving this empty will remove the <tt>.patch</tt>
1161 suffix.
Junio C Hamano4f9a6052007-01-17 20:25:161162</p>
Junio C Hamano68cf15a2010-11-06 01:01:591163<div class="paragraph"><p>Note that the leading character does not have to be a dot; for example,
Junio C Hamanof4581102009-04-25 08:29:591164you can use <tt>--suffix=-patch</tt> to get <tt>0001-description-of-my-change-patch</tt>.</p></div>
Junio C Hamano4f9a6052007-01-17 20:25:161165</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591166<dt class="hdlist1">
Junio C Hamano209ebe82011-04-27 21:09:591167--quiet
1168</dt>
1169<dd>
1170<p>
1171 Do not print the names of the generated files to standard output.
1172</p>
1173</dd>
1174<dt class="hdlist1">
Junio C Hamano869bb802008-05-12 00:29:471175--no-binary
1176</dt>
1177<dd>
1178<p>
Junio C Hamanof4581102009-04-25 08:29:591179 Do not output contents of changes in binary files, instead
1180 display a notice that those files changed. Patches generated
1181 using this option cannot be applied properly, but they are
1182 still useful for code review.
Junio C Hamano869bb802008-05-12 00:29:471183</p>
1184</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591185<dt class="hdlist1">
Junio C Hamano9572e922009-04-02 06:52:031186--root
1187</dt>
1188<dd>
1189<p>
1190 Treat the revision argument as a &lt;revision range&gt;, even if it
1191 is just a single commit (that would normally be treated as a
1192 &lt;since&gt;). Note that root commits included in the specified
1193 range are always formatted as creation patches, independently
1194 of this flag.
1195</p>
1196</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311197</dl></div>
Junio C Hamano1a4e8412005-12-27 08:17:231198</div>
Junio C Hamanoba4b9282008-07-06 05:20:311199<h2 id="_configuration">CONFIGURATION</h2>
Junio C Hamano2496ae42006-03-11 08:04:331200<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591201<div class="paragraph"><p>You can specify extra mail header lines to be added to each message,
Junio C Hamanof4581102009-04-25 08:29:591202defaults for the subject prefix and file suffix, number patches when
Junio C Hamanoea90ab32010-03-15 20:32:551203outputting more than one patch, add "To" or "Cc:" headers, configure
1204attachments, and sign off patches with configuration variables.</p></div>
Junio C Hamano7c73c662007-01-19 00:37:501205<div class="listingblock">
Junio C Hamano2496ae42006-03-11 08:04:331206<div class="content">
Junio C Hamano7c73c662007-01-19 00:37:501207<pre><tt>[format]
1208 headers = "Organization: git-foo\n"
Junio C Hamano1d90cb02007-07-03 07:05:311209 subjectprefix = CHANGE
Junio C Hamano8c5802d2007-11-15 00:13:361210 suffix = .txt
Junio C Hamano2fbcd212008-05-14 22:26:071211 numbered = auto
Junio C Hamanoea90ab32010-03-15 20:32:551212 to = &lt;email&gt;
Junio C Hamano0a235222009-03-06 08:21:091213 cc = &lt;email&gt;
Junio C Hamano5f9a6f02009-04-06 08:26:561214 attach [ = mime-boundary-string ]
1215 signoff = true</tt></pre>
Junio C Hamano4f9a6052007-01-17 20:25:161216</div></div>
Junio C Hamano2496ae42006-03-11 08:04:331217</div>
Junio C Hamanob77f8192011-05-05 01:30:381218<h2 id="_discussion">DISCUSSION</h2>
1219<div class="sectionbody">
1220<div class="paragraph"><p>The patch produced by <em>git format-patch</em> is in UNIX mailbox format,
1221with a fixed "magic" time stamp to indicate that the file is output
1222from format-patch rather than a real mailbox, like so:</p></div>
1223<div class="listingblock">
1224<div class="content">
1225<pre><tt>From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001
1226From: Tony Luck &lt;tony.luck@intel.com&gt;
1227Date: Tue, 13 Jul 2010 11:42:54 -0700
1228Subject: [PATCH] =?UTF-8?q?[IA64]=20Put=20ia64=20config=20files=20on=20the=20?=
1229 =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20diet?=
1230MIME-Version: 1.0
1231Content-Type: text/plain; charset=UTF-8
1232Content-Transfer-Encoding: 8bit
1233
1234arch/arm config files were slimmed down using a python script
1235(See commit c2330e286f68f1c408b4aa6515ba49d57f05beae comment)
1236
1237Do the same for ia64 so we can have sleek &amp; trim looking
1238...</tt></pre>
1239</div></div>
1240<div class="paragraph"><p>Typically it will be placed in a MUA&#8217;s drafts folder, edited to add
1241timely commentary that should not go in the changelog after the three
1242dashes, and then sent as a message whose body, in our example, starts
1243with "arch/arm config files were&#8230;". On the receiving end, readers
1244can save interesting patches in a UNIX mailbox and apply them with
1245<a href="git-am.html">git-am(1)</a>.</p></div>
1246<div class="paragraph"><p>When a patch is part of an ongoing discussion, the patch generated by
1247<em>git format-patch</em> can be tweaked to take advantage of the <em>git am
1248--scissors</em> feature. After your response to the discussion comes a
1249line that consists solely of "<tt>-- &gt;8 --</tt>" (scissors and perforation),
1250followed by the patch with unnecessary header fields removed:</p></div>
1251<div class="listingblock">
1252<div class="content">
1253<pre><tt>...
1254&gt; So we should do such-and-such.
1255
1256Makes sense to me. How about this patch?
1257
1258-- &gt;8 --
1259Subject: [IA64] Put ia64 config files on the Uwe Kleine-König diet
1260
1261arch/arm config files were slimmed down using a python script
1262...</tt></pre>
1263</div></div>
1264<div class="paragraph"><p>When sending a patch this way, most often you are sending your own
1265patch, so in addition to the "<tt>From $SHA1 $magic_timestamp</tt>" marker you
1266should omit <tt>From:</tt> and <tt>Date:</tt> lines from the patch file. The patch
1267title is likely to be different from the subject of the discussion the
1268patch is in response to, so it is likely that you would want to keep
1269the Subject: line, like the example above.</p></div>
1270<h3 id="_checking_for_patch_corruption">Checking for patch corruption</h3><div style="clear:left"></div>
1271<div class="paragraph"><p>Many mailers if not set up properly will corrupt whitespace. Here are
1272two common types of corruption:</p></div>
1273<div class="ulist"><ul>
1274<li>
1275<p>
1276Empty context lines that do not have <em>any</em> whitespace.
1277</p>
1278</li>
1279<li>
1280<p>
1281Non-empty context lines that have one extra whitespace at the
1282 beginning.
1283</p>
1284</li>
1285</ul></div>
1286<div class="paragraph"><p>One way to test if your MUA is set up correctly is:</p></div>
1287<div class="ulist"><ul>
1288<li>
1289<p>
1290Send the patch to yourself, exactly the way you would, except
1291 with To: and Cc: lines that do not contain the list and
1292 maintainer address.
1293</p>
1294</li>
1295<li>
1296<p>
1297Save that patch to a file in UNIX mailbox format. Call it a.patch,
1298 say.
1299</p>
1300</li>
1301<li>
1302<p>
1303Apply it:
1304</p>
1305<div class="literalblock">
1306<div class="content">
1307<pre><tt>$ git fetch &lt;project&gt; master:test-apply
1308$ git checkout test-apply
1309$ git reset --hard
1310$ git am a.patch</tt></pre>
1311</div></div>
1312</li>
1313</ul></div>
1314<div class="paragraph"><p>If it does not apply correctly, there can be various reasons.</p></div>
1315<div class="ulist"><ul>
1316<li>
1317<p>
1318The patch itself does not apply cleanly. That is <em>bad</em> but
1319 does not have much to do with your MUA. You might want to rebase
1320 the patch with <a href="git-rebase.html">git-rebase(1)</a> before regenerating it in
1321 this case.
1322</p>
1323</li>
1324<li>
1325<p>
1326The MUA corrupted your patch; "am" would complain that
1327 the patch does not apply. Look in the .git/rebase-apply/ subdirectory and
1328 see what <em>patch</em> file contains and check for the common
1329 corruption patterns mentioned above.
1330</p>
1331</li>
1332<li>
1333<p>
1334While at it, check the <em>info</em> and <em>final-commit</em> files as well.
1335 If what is in <em>final-commit</em> is not exactly what you would want to
1336 see in the commit log message, it is very likely that the
1337 receiver would end up hand editing the log message when applying
1338 your patch. Things like "Hi, this is my first patch.\n" in the
1339 patch e-mail should come after the three-dash line that signals
1340 the end of the commit message.
1341</p>
1342</li>
1343</ul></div>
1344</div>
1345<h2 id="_mua_specific_hints">MUA-SPECIFIC HINTS</h2>
1346<div class="sectionbody">
1347<div class="paragraph"><p>Here are some hints on how to successfully submit patches inline using
1348various mailers.</p></div>
1349<h3 id="_gmail">GMail</h3><div style="clear:left"></div>
1350<div class="paragraph"><p>GMail does not have any way to turn off line wrapping in the web
1351interface, so it will mangle any emails that you send. You can however
1352use "git send-email" and send your patches through the GMail SMTP server, or
1353use any IMAP email client to connect to the google IMAP server and forward
1354the emails through that.</p></div>
1355<div class="paragraph"><p>For hints on using <em>git send-email</em> to send your patches through the
1356GMail SMTP server, see the EXAMPLE section of <a href="git-send-email.html">git-send-email(1)</a>.</p></div>
1357<div class="paragraph"><p>For hints on submission using the IMAP interface, see the EXAMPLE
1358section of <a href="git-imap-send.html">git-imap-send(1)</a>.</p></div>
1359<h3 id="_thunderbird">Thunderbird</h3><div style="clear:left"></div>
1360<div class="paragraph"><p>By default, Thunderbird will both wrap emails as well as flag
1361them as being <em>format=flowed</em>, both of which will make the
1362resulting email unusable by git.</p></div>
1363<div class="paragraph"><p>There are three different approaches: use an add-on to turn off line wraps,
1364configure Thunderbird to not mangle patches, or use
1365an external editor to keep Thunderbird from mangling the patches.</p></div>
1366<h4 id="_approach_1_add_on">Approach #1 (add-on)</h4>
1367<div class="paragraph"><p>Install the Toggle Word Wrap add-on that is available from
1368<a href="https://addons.mozilla.org/thunderbird/addon/toggle-word-wrap/">https://addons.mozilla.org/thunderbird/addon/toggle-word-wrap/</a>
1369It adds a menu entry "Enable Word Wrap" in the composer&#8217;s "Options" menu
1370that you can tick off. Now you can compose the message as you otherwise do
1371(cut + paste, <em>git format-patch</em> | <em>git imap-send</em>, etc), but you have to
1372insert line breaks manually in any text that you type.</p></div>
1373<h4 id="_approach_2_configuration">Approach #2 (configuration)</h4>
1374<div class="paragraph"><p>Three steps:</p></div>
1375<div class="olist arabic"><ol class="arabic">
1376<li>
1377<p>
1378Configure your mail server composition as plain text:
1379 Edit&#8230;Account Settings&#8230;Composition &amp; Addressing,
1380 uncheck "Compose Messages in HTML".
1381</p>
1382</li>
1383<li>
1384<p>
1385Configure your general composition window to not wrap.
1386</p>
1387<div class="paragraph"><p>In Thunderbird 2:
1388Edit..Preferences..Composition, wrap plain text messages at 0</p></div>
1389<div class="paragraph"><p>In Thunderbird 3:
1390Edit..Preferences..Advanced..Config Editor. Search for
1391"mail.wrap_long_lines".
1392Toggle it to make sure it is set to <tt>false</tt>.</p></div>
1393</li>
1394<li>
1395<p>
1396Disable the use of format=flowed:
1397Edit..Preferences..Advanced..Config Editor. Search for
1398"mailnews.send_plaintext_flowed".
1399Toggle it to make sure it is set to <tt>false</tt>.
1400</p>
1401</li>
1402</ol></div>
1403<div class="paragraph"><p>After that is done, you should be able to compose email as you
1404otherwise would (cut + paste, <em>git format-patch</em> | <em>git imap-send</em>, etc),
1405and the patches will not be mangled.</p></div>
1406<h4 id="_approach_3_external_editor">Approach #3 (external editor)</h4>
1407<div class="paragraph"><p>The following Thunderbird extensions are needed:
1408AboutConfig from <a href="http://aboutconfig.mozdev.org/">http://aboutconfig.mozdev.org/</a> and
1409External Editor from <a href="http://globs.org/articles.php?lng=en&amp;pg=8">http://globs.org/articles.php?lng=en&amp;pg=8</a></p></div>
1410<div class="olist arabic"><ol class="arabic">
1411<li>
1412<p>
1413Prepare the patch as a text file using your method of choice.
1414</p>
1415</li>
1416<li>
1417<p>
1418Before opening a compose window, use Edit&#8594;Account Settings to
1419 uncheck the "Compose messages in HTML format" setting in the
1420 "Composition &amp; Addressing" panel of the account to be used to
1421 send the patch.
1422</p>
1423</li>
1424<li>
1425<p>
1426In the main Thunderbird window, <em>before</em> you open the compose
1427 window for the patch, use Tools&#8594;about:config to set the
1428 following to the indicated values:
1429</p>
1430<div class="listingblock">
1431<div class="content">
1432<pre><tt> mailnews.send_plaintext_flowed =&gt; false
1433 mailnews.wraplength =&gt; 0</tt></pre>
1434</div></div>
1435</li>
1436<li>
1437<p>
1438Open a compose window and click the external editor icon.
1439</p>
1440</li>
1441<li>
1442<p>
1443In the external editor window, read in the patch file and exit
1444 the editor normally.
1445</p>
1446</li>
1447</ol></div>
1448<div class="paragraph"><p>Side note: it may be possible to do step 2 with
1449about:config and the following settings but no one&#8217;s tried yet.</p></div>
1450<div class="listingblock">
1451<div class="content">
1452<pre><tt> mail.html_compose =&gt; false
1453 mail.identity.default.compose_html =&gt; false
1454 mail.identity.id?.compose_html =&gt; false</tt></pre>
1455</div></div>
1456<div class="paragraph"><p>There is a script in contrib/thunderbird-patch-inline which can help
1457you include patches with Thunderbird in an easy way. To use it, do the
1458steps above and then use the script as the external editor.</p></div>
1459<h3 id="_kmail">KMail</h3><div style="clear:left"></div>
1460<div class="paragraph"><p>This should help you to submit patches inline using KMail.</p></div>
1461<div class="olist arabic"><ol class="arabic">
1462<li>
1463<p>
1464Prepare the patch as a text file.
1465</p>
1466</li>
1467<li>
1468<p>
1469Click on New Mail.
1470</p>
1471</li>
1472<li>
1473<p>
1474Go under "Options" in the Composer window and be sure that
1475 "Word wrap" is not set.
1476</p>
1477</li>
1478<li>
1479<p>
1480Use Message &#8594; Insert file&#8230; and insert the patch.
1481</p>
1482</li>
1483<li>
1484<p>
1485Back in the compose window: add whatever other text you wish to the
1486 message, complete the addressing and subject fields, and press send.
1487</p>
1488</li>
1489</ol></div>
1490</div>
Junio C Hamanoba4b9282008-07-06 05:20:311491<h2 id="_examples">EXAMPLES</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231492<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591493<div class="ulist"><ul>
Junio C Hamano6d76d612008-05-09 05:46:081494<li>
Junio C Hamano1a4e8412005-12-27 08:17:231495<p>
Junio C Hamano6d76d612008-05-09 05:46:081496Extract commits between revisions R1 and R2, and apply them on top of
Junio C Hamano1aa40d22010-01-21 17:46:431497the current branch using <em>git am</em> to cherry-pick them:
Junio C Hamano1a4e8412005-12-27 08:17:231498</p>
Junio C Hamano6d76d612008-05-09 05:46:081499<div class="listingblock">
1500<div class="content">
Junio C Hamanoba4b9282008-07-06 05:20:311501<pre><tt>$ git format-patch -k --stdout R1..R2 | git am -3 -k</tt></pre>
Junio C Hamano6d76d612008-05-09 05:46:081502</div></div>
1503</li>
1504<li>
Junio C Hamano1a4e8412005-12-27 08:17:231505<p>
Junio C Hamano6d76d612008-05-09 05:46:081506Extract all commits which are in the current branch but not in the
1507origin branch:
Junio C Hamano1a4e8412005-12-27 08:17:231508</p>
Junio C Hamano6d76d612008-05-09 05:46:081509<div class="listingblock">
1510<div class="content">
1511<pre><tt>$ git format-patch origin</tt></pre>
1512</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591513<div class="paragraph"><p>For each commit a separate file is created in the current directory.</p></div>
Junio C Hamano6d76d612008-05-09 05:46:081514</li>
1515<li>
Junio C Hamano7d9e9bd2007-08-29 07:31:471516<p>
Junio C Hamano6d76d612008-05-09 05:46:081517Extract all commits that lead to <em>origin</em> since the inception of the
1518project:
Junio C Hamano7d9e9bd2007-08-29 07:31:471519</p>
Junio C Hamano6d76d612008-05-09 05:46:081520<div class="listingblock">
1521<div class="content">
Junio C Hamanoba4b9282008-07-06 05:20:311522<pre><tt>$ git format-patch --root origin</tt></pre>
Junio C Hamano6d76d612008-05-09 05:46:081523</div></div>
1524</li>
1525<li>
Junio C Hamano1a4e8412005-12-27 08:17:231526<p>
Junio C Hamano6d76d612008-05-09 05:46:081527The same as the previous one:
Junio C Hamano1a4e8412005-12-27 08:17:231528</p>
Junio C Hamano6d76d612008-05-09 05:46:081529<div class="listingblock">
1530<div class="content">
1531<pre><tt>$ git format-patch -M -B origin</tt></pre>
1532</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591533<div class="paragraph"><p>Additionally, it detects and handles renames and complete rewrites
Junio C Hamano6d76d612008-05-09 05:46:081534intelligently to produce a renaming patch. A renaming patch reduces
Junio C Hamanof4581102009-04-25 08:29:591535the amount of text output, and generally makes it easier to review.
Junio C Hamano68cf15a2010-11-06 01:01:591536Note that non-git "patch" programs won&#8217;t understand renaming patches, so
Junio C Hamanoba4b9282008-07-06 05:20:311537use it only when you know the recipient uses git to apply your patch.</p></div>
Junio C Hamano6d76d612008-05-09 05:46:081538</li>
1539<li>
Junio C Hamano7c73c662007-01-19 00:37:501540<p>
Junio C Hamano6d76d612008-05-09 05:46:081541Extract three topmost commits from the current branch and format them
1542as e-mailable patches:
Junio C Hamano7c73c662007-01-19 00:37:501543</p>
Junio C Hamano6d76d612008-05-09 05:46:081544<div class="listingblock">
1545<div class="content">
1546<pre><tt>$ git format-patch -3</tt></pre>
1547</div></div>
1548</li>
Junio C Hamanoba4b9282008-07-06 05:20:311549</ul></div>
Junio C Hamano1a4e8412005-12-27 08:17:231550</div>
Junio C Hamanoba4b9282008-07-06 05:20:311551<h2 id="_see_also">SEE ALSO</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231552<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591553<div class="paragraph"><p><a href="git-am.html">git-am(1)</a>, <a href="git-send-email.html">git-send-email(1)</a></p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231554</div>
Junio C Hamanoba4b9282008-07-06 05:20:311555<h2 id="_git">GIT</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231556<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591557<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231558</div>
1559<div id="footer">
1560<div id="footer-text">
Junio C Hamanob77f8192011-05-05 01:30:381561Last updated 2011-05-05 01:29:54 UTC
Junio C Hamano1a4e8412005-12-27 08:17:231562</div>
1563</div>
1564</body>
1565</html>