Autogenerated HTML docs for v1.7.0.3-254-g4503b
[git/jnareb-git.git] / git-blame.html
blobd180049d02a5bbaca6294a64e7e3ebe49ffe59f0
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">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 8.2.5" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1, h2, h3 {
48 border-bottom: 2px solid silver;
50 h2 {
51 padding-top: 0.5em;
53 h3 {
54 float: left;
56 h3 + * {
57 clear: left;
60 div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
65 hr {
66 border: 1px solid silver;
69 p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
74 pre {
75 padding: 0;
76 margin: 0;
79 span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
83 font-size: 1.1em;
85 span#email {
87 span#revision {
88 font-family: sans-serif;
91 div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
98 div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
102 div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
107 div#preamble,
108 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110 div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
115 div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
120 div.content { /* Block element content. */
121 padding: 0;
124 /* Block element titles. */
125 div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
132 div.title + * {
133 margin-top: 0;
136 td div.title:first-child {
137 margin-top: 0.0em;
139 div.content div.title:first-child {
140 margin-top: 0.0em;
142 div.content + div.title {
143 margin-top: 0.0em;
146 div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
152 div.listingblock {
153 margin-right: 0%;
155 div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
161 div.quoteblock > div.content {
162 padding-left: 2.0em;
165 div.attribution {
166 text-align: right;
168 div.verseblock + div.attribution {
169 text-align: left;
172 div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
180 div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
185 div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
190 div.verseblock div.content {
191 white-space: pre;
194 div.imageblock div.content { padding-left: 0; }
195 div.imageblock img { border: 1px solid silver; }
196 span.image img { border-style: none; }
198 dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
202 dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
207 dd > *:first-child {
208 margin-top: 0;
211 ul, ol {
212 list-style-position: outside;
214 div.olist2 ol {
215 list-style-type: lower-alpha;
218 div.tableblock > table {
219 border: 3px solid #527bbd;
221 thead {
222 font-family: sans-serif;
223 font-weight: bold;
225 tfoot {
226 font-weight: bold;
229 div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
233 div.hlist td {
234 padding-bottom: 5px;
236 td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
241 td.hlist2 {
242 vertical-align: top;
245 @media print {
246 div#footer-badges { display: none; }
249 div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
258 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
262 div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
266 div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
270 div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
274 include1::./stylesheets/xhtml11-manpage.css[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
282 div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
289 div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
295 div.quoteblock-content {
296 padding-left: 2.0em;
299 div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc a:visited { color: blue; }
306 </style>
307 <title>git-blame(1)</title>
308 </head>
309 <body>
310 <div id="header">
311 <h1>
312 git-blame(1) Manual Page
313 </h1>
314 <h2>NAME</h2>
315 <div class="sectionbody">
316 <p>git-blame -
317 Show what revision and author last modified each line of a file
318 </p>
319 </div>
320 </div>
321 <h2>SYNOPSIS</h2>
322 <div class="sectionbody">
323 <div class="verseblock">
324 <div class="content"><em>git blame</em> [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [--incremental] [-L n,m]
325 [-S &lt;revs-file&gt;] [-M] [-C] [-C] [-C] [--since=&lt;date&gt;]
326 [&lt;rev&gt; | --contents &lt;file&gt; | --reverse &lt;rev&gt;] [--] &lt;file&gt;</div></div>
327 </div>
328 <h2 id="_description">DESCRIPTION</h2>
329 <div class="sectionbody">
330 <div class="para"><p>Annotates each line in the given file with information from the revision which
331 last modified the line. Optionally, start annotating from the given revision.</p></div>
332 <div class="para"><p>The command can also limit the range of lines annotated.</p></div>
333 <div class="para"><p>The report does not tell you anything about lines which have been deleted or
334 replaced; you need to use a tool such as <em>git diff</em> or the "pickaxe"
335 interface briefly mentioned in the following paragraph.</p></div>
336 <div class="para"><p>Apart from supporting file annotation, git also supports searching the
337 development history for when a code snippet occurred in a change. This makes it
338 possible to track when a code snippet was added to a file, moved or copied
339 between files, and eventually deleted or replaced. It works by searching for
340 a text string in the diff. A small example:</p></div>
341 <div class="listingblock">
342 <div class="content">
343 <pre><tt>$ git log --pretty=oneline -S'blame_usage'
344 5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S &lt;ancestry-file&gt;
345 ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</tt></pre>
346 </div></div>
347 </div>
348 <h2 id="_options">OPTIONS</h2>
349 <div class="sectionbody">
350 <div class="vlist"><dl>
351 <dt>
353 </dt>
354 <dd>
356 Show blank SHA-1 for boundary commits. This can also
357 be controlled via the <tt>blame.blankboundary</tt> config option.
358 </p>
359 </dd>
360 <dt>
361 --root
362 </dt>
363 <dd>
365 Do not treat root commits as boundaries. This can also be
366 controlled via the <tt>blame.showroot</tt> config option.
367 </p>
368 </dd>
369 <dt>
370 --show-stats
371 </dt>
372 <dd>
374 Include additional statistics at the end of blame output.
375 </p>
376 </dd>
377 <dt>
378 -L &lt;start&gt;,&lt;end&gt;
379 </dt>
380 <dd>
382 Annotate only the given line range. &lt;start&gt; and &lt;end&gt; can take
383 one of these forms:
384 </p>
385 <div class="ilist"><ul>
386 <li>
388 number
389 </p>
390 <div class="para"><p>If &lt;start&gt; or &lt;end&gt; is a number, it specifies an
391 absolute line number (lines count from 1).</p></div>
392 </li>
393 <li>
395 /regex/
396 </p>
397 <div class="para"><p>This form will use the first line matching the given
398 POSIX regex. If &lt;end&gt; is a regex, it will search
399 starting at the line given by &lt;start&gt;.</p></div>
400 </li>
401 <li>
403 +offset or -offset
404 </p>
405 <div class="para"><p>This is only valid for &lt;end&gt; and will specify a number
406 of lines before or after the line given by &lt;start&gt;.</p></div>
407 </li>
408 </ul></div>
409 </dd>
410 <dt>
412 </dt>
413 <dd>
415 Show long rev (Default: off).
416 </p>
417 </dd>
418 <dt>
420 </dt>
421 <dd>
423 Show raw timestamp (Default: off).
424 </p>
425 </dd>
426 <dt>
427 -S &lt;revs-file&gt;
428 </dt>
429 <dd>
431 Use revisions from revs-file instead of calling <a href="git-rev-list.html">git-rev-list(1)</a>.
432 </p>
433 </dd>
434 <dt>
435 --reverse
436 </dt>
437 <dd>
439 Walk history forward instead of backward. Instead of showing
440 the revision in which a line appeared, this shows the last
441 revision in which a line has existed. This requires a range of
442 revision like START..END where the path to blame exists in
443 START.
444 </p>
445 </dd>
446 <dt>
448 </dt>
449 <dt>
450 --porcelain
451 </dt>
452 <dd>
454 Show in a format designed for machine consumption.
455 </p>
456 </dd>
457 <dt>
458 --incremental
459 </dt>
460 <dd>
462 Show the result incrementally in a format designed for
463 machine consumption.
464 </p>
465 </dd>
466 <dt>
467 --encoding=&lt;encoding&gt;
468 </dt>
469 <dd>
471 Specifies the encoding used to output author names
472 and commit summaries. Setting it to <tt>none</tt> makes blame
473 output unconverted data. For more information see the
474 discussion about encoding in the <a href="git-log.html">git-log(1)</a>
475 manual page.
476 </p>
477 </dd>
478 <dt>
479 --contents &lt;file&gt;
480 </dt>
481 <dd>
483 When &lt;rev&gt; is not specified, the command annotates the
484 changes starting backwards from the working tree copy.
485 This flag makes the command pretend as if the working
486 tree copy has the contents of the named file (specify
487 <tt>-</tt> to make the command read from the standard input).
488 </p>
489 </dd>
490 <dt>
491 --date &lt;format&gt;
492 </dt>
493 <dd>
495 The value is one of the following alternatives:
496 {relative,local,default,iso,rfc,short}. If --date is not
497 provided, the value of the blame.date config variable is
498 used. If the blame.date config variable is also not set, the
499 iso format is used. For more information, See the discussion
500 of the --date option at <a href="git-log.html">git-log(1)</a>.
501 </p>
502 </dd>
503 <dt>
504 -M|&lt;num&gt;|
505 </dt>
506 <dd>
508 Detect moving lines in the file as well. When a commit
509 moves a block of lines in a file (e.g. the original file
510 has A and then B, and the commit changes it to B and
511 then A), the traditional <em>blame</em> algorithm typically blames
512 the lines that were moved up (i.e. B) to the parent and
513 assigns blame to the lines that were moved down (i.e. A)
514 to the child commit. With this option, both groups of lines
515 are blamed on the parent.
516 </p>
517 <div class="para"><p>&lt;num&gt; is optional but it is the lower bound on the number of
518 alphanumeric characters that git must detect as moving
519 within a file for it to associate those lines with the parent
520 commit.</p></div>
521 </dd>
522 <dt>
523 -C|&lt;num&gt;|
524 </dt>
525 <dd>
527 In addition to <tt>-M</tt>, detect lines copied from other
528 files that were modified in the same commit. This is
529 useful when you reorganize your program and move code
530 around across files. When this option is given twice,
531 the command additionally looks for copies from other
532 files in the commit that creates the file. When this
533 option is given three times, the command additionally
534 looks for copies from other files in any commit.
535 </p>
536 <div class="para"><p>&lt;num&gt; is optional but it is the lower bound on the number of
537 alphanumeric characters that git must detect as moving
538 between files for it to associate those lines with the parent
539 commit.</p></div>
540 </dd>
541 <dt>
543 </dt>
544 <dt>
545 --help
546 </dt>
547 <dd>
549 Show help message.
550 </p>
551 </dd>
552 <dt>
554 </dt>
555 <dd>
557 Use the same output mode as <a href="git-annotate.html">git-annotate(1)</a> (Default: off).
558 </p>
559 </dd>
560 <dt>
561 --score-debug
562 </dt>
563 <dd>
565 Include debugging information related to the movement of
566 lines between files (see <tt>-C</tt>) and lines moved within a
567 file (see <tt>-M</tt>). The first number listed is the score.
568 This is the number of alphanumeric characters detected
569 as having been moved between or within files. This must be above
570 a certain threshold for <em>git blame</em> to consider those lines
571 of code to have been moved.
572 </p>
573 </dd>
574 <dt>
576 </dt>
577 <dt>
578 --show-name
579 </dt>
580 <dd>
582 Show the filename in the original commit. By default
583 the filename is shown if there is any line that came from a
584 file with a different name, due to rename detection.
585 </p>
586 </dd>
587 <dt>
589 </dt>
590 <dt>
591 --show-number
592 </dt>
593 <dd>
595 Show the line number in the original commit (Default: off).
596 </p>
597 </dd>
598 <dt>
600 </dt>
601 <dd>
603 Suppress the author name and timestamp from the output.
604 </p>
605 </dd>
606 <dt>
608 </dt>
609 <dd>
611 Ignore whitespace when comparing the parent's version and
612 the child's to find where the lines came from.
613 </p>
614 </dd>
615 </dl></div>
616 </div>
617 <h2 id="_the_porcelain_format">THE PORCELAIN FORMAT</h2>
618 <div class="sectionbody">
619 <div class="para"><p>In this format, each line is output after a header; the
620 header at the minimum has the first line which has:</p></div>
621 <div class="ilist"><ul>
622 <li>
624 40-byte SHA-1 of the commit the line is attributed to;
625 </p>
626 </li>
627 <li>
629 the line number of the line in the original file;
630 </p>
631 </li>
632 <li>
634 the line number of the line in the final file;
635 </p>
636 </li>
637 <li>
639 on a line that starts a group of lines from a different
640 commit than the previous one, the number of lines in this
641 group. On subsequent lines this field is absent.
642 </p>
643 </li>
644 </ul></div>
645 <div class="para"><p>This header line is followed by the following information
646 at least once for each commit:</p></div>
647 <div class="ilist"><ul>
648 <li>
650 the author name ("author"), email ("author-mail"), time
651 ("author-time"), and timezone ("author-tz"); similarly
652 for committer.
653 </p>
654 </li>
655 <li>
657 the filename in the commit that the line is attributed to.
658 </p>
659 </li>
660 <li>
662 the first line of the commit log message ("summary").
663 </p>
664 </li>
665 </ul></div>
666 <div class="para"><p>The contents of the actual line is output after the above
667 header, prefixed by a TAB. This is to allow adding more
668 header elements later.</p></div>
669 </div>
670 <h2 id="_specifying_ranges">SPECIFYING RANGES</h2>
671 <div class="sectionbody">
672 <div class="para"><p>Unlike <em>git blame</em> and <em>git annotate</em> in older versions of git, the extent
673 of the annotation can be limited to both line ranges and revision
674 ranges. When you are interested in finding the origin for
675 lines 40-60 for file <tt>foo</tt>, you can use the <tt>-L</tt> option like so
676 (they mean the same thing &#8212; both ask for 21 lines starting at
677 line 40):</p></div>
678 <div class="literalblock">
679 <div class="content">
680 <pre><tt>git blame -L 40,60 foo
681 git blame -L 40,+21 foo</tt></pre>
682 </div></div>
683 <div class="para"><p>Also you can use a regular expression to specify the line range:</p></div>
684 <div class="literalblock">
685 <div class="content">
686 <pre><tt>git blame -L '/^sub hello {/,/^}$/' foo</tt></pre>
687 </div></div>
688 <div class="para"><p>which limits the annotation to the body of the <tt>hello</tt> subroutine.</p></div>
689 <div class="para"><p>When you are not interested in changes older than version
690 v2.6.18, or changes older than 3 weeks, you can use revision
691 range specifiers similar to <em>git rev-list</em>:</p></div>
692 <div class="literalblock">
693 <div class="content">
694 <pre><tt>git blame v2.6.18.. -- foo
695 git blame --since=3.weeks -- foo</tt></pre>
696 </div></div>
697 <div class="para"><p>When revision range specifiers are used to limit the annotation,
698 lines that have not changed since the range boundary (either the
699 commit v2.6.18 or the most recent commit that is more than 3
700 weeks old in the above example) are blamed for that range
701 boundary commit.</p></div>
702 <div class="para"><p>A particularly useful way is to see if an added file has lines
703 created by copy-and-paste from existing files. Sometimes this
704 indicates that the developer was being sloppy and did not
705 refactor the code properly. You can first find the commit that
706 introduced the file with:</p></div>
707 <div class="literalblock">
708 <div class="content">
709 <pre><tt>git log --diff-filter=A --pretty=short -- foo</tt></pre>
710 </div></div>
711 <div class="para"><p>and then annotate the change between the commit and its
712 parents, using <tt>commit&#94;!</tt> notation:</p></div>
713 <div class="literalblock">
714 <div class="content">
715 <pre><tt>git blame -C -C -f $commit^! -- foo</tt></pre>
716 </div></div>
717 </div>
718 <h2 id="_incremental_output">INCREMENTAL OUTPUT</h2>
719 <div class="sectionbody">
720 <div class="para"><p>When called with <tt>--incremental</tt> option, the command outputs the
721 result as it is built. The output generally will talk about
722 lines touched by more recent commits first (i.e. the lines will
723 be annotated out of order) and is meant to be used by
724 interactive viewers.</p></div>
725 <div class="para"><p>The output format is similar to the Porcelain format, but it
726 does not contain the actual lines from the file that is being
727 annotated.</p></div>
728 <div class="olist"><ol>
729 <li>
731 Each blame entry always starts with a line of:
732 </p>
733 <div class="literalblock">
734 <div class="content">
735 <pre><tt>&lt;40-byte hex sha1&gt; &lt;sourceline&gt; &lt;resultline&gt; &lt;num_lines&gt;</tt></pre>
736 </div></div>
737 <div class="para"><p>Line numbers count from 1.</p></div>
738 </li>
739 <li>
741 The first time that a commit shows up in the stream, it has various
742 other information about it printed out with a one-word tag at the
743 beginning of each line describing the extra commit information (author,
744 email, committer, dates, summary, etc.).
745 </p>
746 </li>
747 <li>
749 Unlike the Porcelain format, the filename information is always
750 given and terminates the entry:
751 </p>
752 <div class="literalblock">
753 <div class="content">
754 <pre><tt>"filename" &lt;whitespace-quoted-filename-goes-here&gt;</tt></pre>
755 </div></div>
756 <div class="para"><p>and thus it is really quite easy to parse for some line- and word-oriented
757 parser (which should be quite natural for most scripting languages).</p></div>
758 <div class="admonitionblock">
759 <table><tr>
760 <td class="icon">
761 <div class="title">Note</div>
762 </td>
763 <td class="content">For people who do parsing: to make it more robust, just ignore any
764 lines between the first and last one ("&lt;sha1&gt;" and "filename" lines)
765 where you do not recognize the tag words (or care about that particular
766 one) at the beginning of the "extended information" lines. That way, if
767 there is ever added information (like the commit encoding or extended
768 commit commentary), a blame viewer will not care.</td>
769 </tr></table>
770 </div>
771 </li>
772 </ol></div>
773 </div>
774 <h2 id="_mapping_authors">MAPPING AUTHORS</h2>
775 <div class="sectionbody">
776 <div class="para"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at
777 the location pointed to by the mailmap.file configuration option, it
778 is used to map author and committer names and email addresses to
779 canonical real names and email addresses.</p></div>
780 <div class="para"><p>In the simple form, each line in the file consists of the canonical
781 real name of an author, whitespace, and an email address used in the
782 commit (enclosed by <em>&lt;</em> and <em>&gt;</em>) to map to the name. For example:</p></div>
783 <div class="literalblock">
784 <div class="content">
785 <pre><tt>Proper Name &lt;commit@email.xx&gt;</tt></pre>
786 </div></div>
787 <div class="para"><p>The more complex forms are:</p></div>
788 <div class="literalblock">
789 <div class="content">
790 <pre><tt>&lt;proper@email.xx&gt; &lt;commit@email.xx&gt;</tt></pre>
791 </div></div>
792 <div class="para"><p>which allows mailmap to replace only the email part of a commit, and:</p></div>
793 <div class="literalblock">
794 <div class="content">
795 <pre><tt>Proper Name &lt;proper@email.xx&gt; &lt;commit@email.xx&gt;</tt></pre>
796 </div></div>
797 <div class="para"><p>which allows mailmap to replace both the name and the email of a
798 commit matching the specified commit email address, and:</p></div>
799 <div class="literalblock">
800 <div class="content">
801 <pre><tt>Proper Name &lt;proper@email.xx&gt; Commit Name &lt;commit@email.xx&gt;</tt></pre>
802 </div></div>
803 <div class="para"><p>which allows mailmap to replace both the name and the email of a
804 commit matching both the specified commit name and email address.</p></div>
805 <div class="para"><p>Example 1: Your history contains commits by two authors, Jane
806 and Joe, whose names appear in the repository under several forms:</p></div>
807 <div class="listingblock">
808 <div class="content">
809 <pre><tt>Joe Developer &lt;joe@example.com&gt;
810 Joe R. Developer &lt;joe@example.com&gt;
811 Jane Doe &lt;jane@example.com&gt;
812 Jane Doe &lt;jane@laptop.(none)&gt;
813 Jane D. &lt;jane@desktop.(none)&gt;</tt></pre>
814 </div></div>
815 <div class="para"><p>Now suppose that Joe wants his middle name initial used, and Jane
816 prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file
817 would look like:</p></div>
818 <div class="listingblock">
819 <div class="content">
820 <pre><tt>Jane Doe &lt;jane@desktop.(none)&gt;
821 Joe R. Developer &lt;joe@example.com&gt;</tt></pre>
822 </div></div>
823 <div class="para"><p>Note how there is no need for an entry for &lt;jane@laptop.(none)&gt;, because the
824 real name of that author is already correct.</p></div>
825 <div class="para"><p>Example 2: Your repository contains commits from the following
826 authors:</p></div>
827 <div class="listingblock">
828 <div class="content">
829 <pre><tt>nick1 &lt;bugs@company.xx&gt;
830 nick2 &lt;bugs@company.xx&gt;
831 nick2 &lt;nick2@company.xx&gt;
832 santa &lt;me@company.xx&gt;
833 claus &lt;me@company.xx&gt;
834 CTO &lt;cto@coompany.xx&gt;</tt></pre>
835 </div></div>
836 <div class="para"><p>Then you might want a <tt>.mailmap</tt> file that looks like:</p></div>
837 <div class="listingblock">
838 <div class="content">
839 <pre><tt>&lt;cto@company.xx&gt; &lt;cto@coompany.xx&gt;
840 Some Dude &lt;some@dude.xx&gt; nick1 &lt;bugs@company.xx&gt;
841 Other Author &lt;other@author.xx&gt; nick2 &lt;bugs@company.xx&gt;
842 Other Author &lt;other@author.xx&gt; &lt;nick2@company.xx&gt;
843 Santa Claus &lt;santa.claus@northpole.xx&gt; &lt;me@company.xx&gt;</tt></pre>
844 </div></div>
845 <div class="para"><p>Use hash <em>#</em> for comments that are either on their own line, or after
846 the email address.</p></div>
847 </div>
848 <h2 id="_see_also">SEE ALSO</h2>
849 <div class="sectionbody">
850 <div class="para"><p><a href="git-annotate.html">git-annotate(1)</a></p></div>
851 </div>
852 <h2 id="_author">AUTHOR</h2>
853 <div class="sectionbody">
854 <div class="para"><p>Written by Junio C Hamano &lt;gitster@pobox.com&gt;</p></div>
855 </div>
856 <h2 id="_git">GIT</h2>
857 <div class="sectionbody">
858 <div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
859 </div>
860 <div id="footer">
861 <div id="footer-text">
862 Last updated 2010-02-13 00:59:35 UTC
863 </div>
864 </div>
865 </body>
866 </html>