1 <!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">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" />
6 <meta name=
"generator" content=
"AsciiDoc 8.5.2" />
7 <title>git-am(
1)
</title>
8 <style type=
"text/css">
10 p
, li
, dt
, dd
, div
, pre
, h1
, h2
, h3
, h4
, h5
, h6
{
12 border: 1px solid red;
17 margin: 1em 5% 1em 5%;
22 text-decoration: underline
;
42 h1
, h2
, h3
, h4
, h5
, h6
{
44 font-family: sans-serif
;
51 border-bottom: 2px solid silver
;
69 border: 1px solid silver
;
88 font-family: sans-serif
;
94 span#revnumber
, span#revdate
, span#revremark
{
95 font-family: sans-serif
;
99 font-family: sans-serif
;
101 border-top: 2px solid silver
;
107 padding-bottom: 0.5em;
111 padding-bottom: 0.5em;
116 margin-bottom: 1.5em;
118 div
.tableblock
, div
.imageblock
, div
.exampleblock
, div
.verseblock
,
119 div
.quoteblock
, div
.literalblock
, div
.listingblock
, div
.sidebarblock
,
120 div
.admonitionblock
{
122 margin-bottom: 1.5em;
124 div
.admonitionblock
{
126 margin-bottom: 2.0em;
131 div
.content
{ /* Block element content. */
135 /* Block element titles. */
136 div
.title
, caption
.title
{
138 font-family: sans-serif
;
142 margin-bottom: 0.5em;
148 td div
.title:first-child
{
151 div
.content div
.title:first-child
{
154 div
.content
+ div
.title
{
158 div
.sidebarblock
> div
.content
{
160 border: 1px solid silver
;
164 div
.listingblock
> div
.content
{
165 border: 1px solid silver
;
170 div
.quoteblock
, div
.verseblock
{
174 border-left: 5px solid
#dddddd;
178 div
.quoteblock
> div
.attribution
{
183 div
.verseblock
> div
.content
{
186 div
.verseblock
> div
.attribution
{
190 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
191 div
.verseblock
+ div
.attribution
{
195 div
.admonitionblock
.icon
{
199 text-decoration: underline
;
201 padding-right: 0.5em;
203 div
.admonitionblock td
.content
{
205 border-left: 3px solid
#dddddd;
208 div
.exampleblock
> div
.content
{
209 border-left: 3px solid
#dddddd;
213 div
.imageblock div
.content
{ padding-left: 0; }
214 span
.image img
{ border-style: none
; }
215 a
.image:visited
{ color: white
; }
219 margin-bottom: 0.8em;
232 list-style-position: outside
;
235 list-style-type: decimal
;
238 list-style-type: lower-alpha
;
241 list-style-type: upper-alpha
;
244 list-style-type: lower-roman
;
247 list-style-type: upper-roman
;
250 div
.compact ul
, div
.compact ol
,
251 div
.compact p
, div
.compact p
,
252 div
.compact div
, div
.compact div
{
254 margin-bottom: 0.1em;
257 div
.tableblock
> table
{
258 border: 3px solid
#527bbd;
260 thead
, p
.table
.header
{
261 font-family: sans-serif
;
273 /* Because the table frame attribute is overriden by CSS in most browsers. */
274 div
.tableblock
> table
[frame
="void"] {
277 div
.tableblock
> table
[frame
="hsides"] {
278 border-left-style: none
;
279 border-right-style: none
;
281 div
.tableblock
> table
[frame
="vsides"] {
282 border-top-style: none
;
283 border-bottom-style: none
;
289 margin-bottom: 0.8em;
292 padding-bottom: 15px;
294 dt
.hdlist1
.strong
, td
.hdlist1
.strong
{
300 padding-right: 0.8em;
306 div
.hdlist
.compact tr
{
315 .footnote, .footnoteref {
319 span
.footnote
, span
.footnoteref
{
320 vertical-align: super
;
324 margin: 20px 0 20px 0;
328 #footnotes div
.footnote
{
334 border-top: 1px solid silver
;
344 div#footer-badges
{ display: none
; }
348 margin-bottom: 2.5em;
353 font-family: sans-serif
;
357 margin-bottom: 0.1em;
360 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
376 /* Overrides for manpage documents */
379 padding-bottom: 0.5em;
380 border-top: 2px solid silver
;
381 border-bottom: 2px solid silver
;
391 div#toc
{ display: none
; }
394 /* Workarounds for IE6's broken and incomplete CSS2. */
396 div
.sidebar-content
{
398 border: 1px solid silver
;
401 div
.sidebar-title
, div
.image-title
{
403 font-family: sans-serif
;
406 margin-bottom: 0.5em;
409 div
.listingblock div
.content
{
410 border: 1px solid silver
;
415 div
.quoteblock-attribution
{
420 div
.verseblock-content
{
423 div
.verseblock-attribution
{
428 div
.exampleblock-content
{
429 border-left: 3px solid
#dddddd;
433 /* IE6 sets dynamically generated links as visited. */
434 div#toc
a:visited
{ color: blue
; }
436 <script type=
"text/javascript">
438 window
.onload = function(){asciidoc
.footnotes();}
439 var asciidoc
= { // Namespace.
441 /////////////////////////////////////////////////////////////////////
442 // Table Of Contents generator
443 /////////////////////////////////////////////////////////////////////
445 /* Author: Mihai Bazon, September 2002
446 * http://students.infoiasi.ro/~mishoo
448 * Table Of Content generator
451 * Feel free to use this script under the terms of the GNU General Public
452 * License, as long as you do not remove or alter this notice.
455 /* modified by Troy D. Hanson, September 2006. License: GPL */
456 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
459 toc: function (toclevels
) {
461 function getText(el
) {
463 for (var i
= el
.firstChild
; i
!= null; i
= i
.nextSibling
) {
464 if (i
.nodeType
== 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
466 else if (i
.firstChild
!= null)
472 function TocEntry(el
, text
, toclevel
) {
475 this.toclevel
= toclevel
;
478 function tocEntries(el
, toclevels
) {
479 var result
= new Array
;
480 var re
= new RegExp('[hH]([2-'+(toclevels
+1)+'])');
481 // Function that scans the DOM tree for header elements (the DOM2
482 // nodeIterator API would be a better technique but not supported by all
484 var iterate = function (el
) {
485 for (var i
= el
.firstChild
; i
!= null; i
= i
.nextSibling
) {
486 if (i
.nodeType
== 1 /* Node.ELEMENT_NODE */) {
487 var mo
= re
.exec(i
.tagName
);
488 if (mo
&& (i
.getAttribute("class") || i
.getAttribute("className")) != "float") {
489 result
[result
.length
] = new TocEntry(i
, getText(i
), mo
[1]-1);
499 var toc
= document
.getElementById("toc");
500 var entries
= tocEntries(document
.getElementById("content"), toclevels
);
501 for (var i
= 0; i
< entries
.length
; ++i
) {
502 var entry
= entries
[i
];
503 if (entry
.element
.id
== "")
504 entry
.element
.id
= "_toc_" + i
;
505 var a
= document
.createElement("a");
506 a
.href
= "#" + entry
.element
.id
;
507 a
.appendChild(document
.createTextNode(entry
.text
));
508 var div
= document
.createElement("div");
510 div
.className
= "toclevel" + entry
.toclevel
;
511 toc
.appendChild(div
);
513 if (entries
.length
== 0)
514 toc
.parentNode
.removeChild(toc
);
518 /////////////////////////////////////////////////////////////////////
519 // Footnotes generator
520 /////////////////////////////////////////////////////////////////////
522 /* Based on footnote generation code from:
523 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
526 footnotes: function () {
527 var cont
= document
.getElementById("content");
528 var noteholder
= document
.getElementById("footnotes");
529 var spans
= cont
.getElementsByTagName("span");
532 for (i
=0; i
<spans
.length
; i
++) {
533 if (spans
[i
].className
== "footnote") {
535 // Use [\s\S] in place of . so multi-line matches work.
536 // Because JavaScript has no s (dotall) regex flag.
537 note
= spans
[i
].innerHTML
.match(/\s*\[([\s\S]*)]\s*/)[1];
538 noteholder
.innerHTML
+=
539 "<div class='footnote' id='_footnote_" + n
+ "'>" +
540 "<a href='#_footnoteref_" + n
+ "' title='Return to text'>" +
541 n
+ "</a>. " + note
+ "</div>";
543 "[<a id='_footnoteref_" + n
+ "' href='#_footnote_" + n
+
544 "' title='View footnote' class='footnote'>" + n
+ "</a>]";
545 var id
=spans
[i
].getAttribute("id");
546 if (id
!= null) refs
["#"+id
] = n
;
550 noteholder
.parentNode
.removeChild(noteholder
);
552 // Process footnoterefs.
553 for (i
=0; i
<spans
.length
; i
++) {
554 if (spans
[i
].className
== "footnoteref") {
555 var href
= spans
[i
].getElementsByTagName("a")[0].getAttribute("href");
556 href
= href
.match(/#.*/)[0]; // Because IE return full URL.
559 "[<a href='#_footnote_" + n
+
560 "' title='View footnote' class='footnote'>" + n
+ "</a>]";
573 git-am(
1) Manual Page
576 <div class=
"sectionbody">
578 Apply a series of patches from a mailbox
583 <h2 id=
"_synopsis">SYNOPSIS
</h2>
584 <div class=
"sectionbody">
585 <div class=
"verseblock">
586 <div class=
"verseblock-content"><em>git am
</em> [--signoff] [--keep] [--keep-cr | --no-keep-cr] [--utf8 | --no-utf8]
587 [--
3way] [--interactive] [--committer-date-is-author-date]
588 [--ignore-date] [--ignore-space-change | --ignore-whitespace]
589 [--whitespace=
<option
>] [-C
<n
>] [-p
<n
>] [--directory=
<dir
>]
590 [--exclude=
<path
>] [--reject] [-q | --quiet]
591 [--scissors | --no-scissors]
592 [(
<mbox
> |
<Maildir
>)
…]
593 <em>git am
</em> (--continue | --skip | --abort)
</div>
594 <div class=
"verseblock-attribution">
597 <h2 id=
"_description">DESCRIPTION
</h2>
598 <div class=
"sectionbody">
599 <div class=
"paragraph"><p>Splits mail messages in a mailbox into commit log message,
600 authorship information and patches, and applies them to the
601 current branch.
</p></div>
603 <h2 id=
"_options">OPTIONS
</h2>
604 <div class=
"sectionbody">
605 <div class=
"dlist"><dl>
607 (
<mbox
>|
<Maildir
>)
…
611 The list of mailbox files to read patches from. If you do not
612 supply this argument, the command reads from the standard input.
613 If you supply directories, they will be treated as Maildirs.
624 Add a
<tt>Signed-off-by:
</tt> line to the commit message, using
625 the committer identity of yourself.
636 Pass
<tt>-k
</tt> flag to
<em>git mailinfo
</em> (see
<a href=
"git-mailinfo.html">git-mailinfo(
1)
</a>).
647 With
<tt>--keep-cr
</tt>, call
<em>git mailsplit
</em> (see
<a href=
"git-mailsplit.html">git-mailsplit(
1)
</a>)
648 with the same option, to prevent it from stripping CR at the end of
649 lines.
<tt>am.keepcr
</tt> configuration variable can be used to specify the
650 default behaviour.
<tt>--no-keep-cr
</tt> is useful to override
<tt>am.keepcr
</tt>.
661 Remove everything in body before a scissors line (see
662 <a href=
"git-mailinfo.html">git-mailinfo(
1)
</a>).
670 Ignore scissors lines (see
<a href=
"git-mailinfo.html">git-mailinfo(
1)
</a>).
681 Be quiet. Only print error messages.
692 Pass
<tt>-u
</tt> flag to
<em>git mailinfo
</em> (see
<a href=
"git-mailinfo.html">git-mailinfo(
1)
</a>).
693 The proposed commit log message taken from the e-mail
694 is re-coded into UTF-
8 encoding (configuration variable
695 <tt>i18n.commitencoding
</tt> can be used to specify project
’s
696 preferred encoding if it is not UTF-
8).
698 <div class=
"paragraph"><p>This was optional in prior versions of git, but now it is the
699 default. You can use
<tt>--no-utf8
</tt> to override this.
</p></div>
706 Pass
<tt>-n
</tt> flag to
<em>git mailinfo
</em> (see
707 <a href=
"git-mailinfo.html">git-mailinfo(
1)
</a>).
718 When the patch does not apply cleanly, fall back on
719 3-way merge if the patch records the identity of blobs
720 it is supposed to apply to and we have those blobs
728 --ignore-space-change
734 --whitespace=
<option
>
743 --directory=
<dir
>
746 --exclude=
<path
>
753 These flags are passed to the
<em>git apply
</em> (see
<a href=
"git-apply.html">git-apply(
1)
</a>)
770 --committer-date-is-author-date
774 By default the command records the date from the e-mail
775 message as the commit author date, and uses the time of
776 commit creation as the committer date. This allows the
777 user to lie about the committer date by using the same
778 value as the author date.
786 By default the command records the date from the e-mail
787 message as the commit author date, and uses the time of
788 commit creation as the committer date. This allows the
789 user to lie about the author date by using the same
790 value as the committer date.
798 Skip the current patch. This is only meaningful when
799 restarting an aborted patch.
813 After a patch failure (e.g. attempting to apply
814 conflicting patch), the user has applied it by hand and
815 the index file stores the result of the application.
816 Make a commit using the authorship and commit log
817 extracted from the e-mail message and the current index
822 --resolvemsg=
<msg
>
826 When a patch failure occurs,
<msg
> will be printed
827 to the screen before exiting. This overrides the
828 standard message informing you to use
<tt>--resolved
</tt>
829 or
<tt>--skip
</tt> to handle the failure. This is solely
830 for internal use between
<em>git rebase
</em> and
<em>git am
</em>.
838 Restore the original branch and abort the patching operation.
843 <h2 id=
"_discussion">DISCUSSION
</h2>
844 <div class=
"sectionbody">
845 <div class=
"paragraph"><p>The commit author name is taken from the
"From: " line of the
846 message, and commit author date is taken from the
"Date: " line
847 of the message. The
"Subject: " line is used as the title of
848 the commit, after stripping common prefix
"[PATCH <anything>]".
849 The
"Subject: " line is supposed to concisely describe what the
850 commit is about in one line of text.
</p></div>
851 <div class=
"paragraph"><p>"From: " and
"Subject: " lines starting the body override the respective
852 commit author name and title values taken from the headers.
</p></div>
853 <div class=
"paragraph"><p>The commit message is formed by the title taken from the
854 "Subject: ", a blank line and the body of the message up to
855 where the patch begins. Excess whitespace at the end of each
856 line is automatically stripped.
</p></div>
857 <div class=
"paragraph"><p>The patch is expected to be inline, directly following the
858 message. Any line that is of the form:
</p></div>
859 <div class=
"ulist"><ul>
862 three-dashes and end-of-line, or
867 a line that begins with
"diff -", or
872 a line that begins with
"Index: "
876 <div class=
"paragraph"><p>is taken as the beginning of a patch, and the commit log message
877 is terminated before the first occurrence of such a line.
</p></div>
878 <div class=
"paragraph"><p>When initially invoking
<tt>git am
</tt>, you give it the names of the mailboxes
879 to process. Upon seeing the first patch that does not apply, it
880 aborts in the middle. You can recover from this in one of two ways:
</p></div>
881 <div class=
"olist arabic"><ol class=
"arabic">
884 skip the current patch by re-running the command with the
<em>--skip
</em>
890 hand resolve the conflict in the working directory, and update
891 the index file to bring it into a state that the patch should
892 have produced. Then run the command with the
<em>--resolved
</em> option.
896 <div class=
"paragraph"><p>The command refuses to process new mailboxes until the current
897 operation is finished, so if you decide to start over from scratch,
898 run
<tt>git am --abort
</tt> before running the command with mailbox
900 <div class=
"paragraph"><p>Before any patches are applied, ORIG_HEAD is set to the tip of the
901 current branch. This is useful if you have problems with multiple
902 commits, like running
<em>git am
</em> on the wrong branch or an error in the
903 commits that is more easily fixed by changing the mailbox (e.g.
904 errors in the
"From:" lines).
</p></div>
906 <h2 id=
"_see_also">SEE ALSO
</h2>
907 <div class=
"sectionbody">
908 <div class=
"paragraph"><p><a href=
"git-apply.html">git-apply(
1)
</a>.
</p></div>
910 <h2 id=
"_git">GIT
</h2>
911 <div class=
"sectionbody">
912 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
915 <div id=
"footnotes"><hr /></div>
917 <div id=
"footer-text">
918 Last updated
2011-
09-
21 23:
01:
14 PDT