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.4.5" />
7 <title>git-whatchanged(
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.5em;
129 div
.content
{ /* Block element content. */
133 /* Block element titles. */
134 div
.title
, caption
.title
{
136 font-family: sans-serif
;
140 margin-bottom: 0.5em;
146 td div
.title:first-child
{
149 div
.content div
.title:first-child
{
152 div
.content
+ div
.title
{
156 div
.sidebarblock
> div
.content
{
158 border: 1px solid silver
;
162 div
.listingblock
> div
.content
{
163 border: 1px solid silver
;
172 div
.quoteblock
> div
.attribution
{
181 div
.verseblock
> div
.content
{
184 div
.verseblock
> div
.attribution
{
188 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
189 div
.verseblock
+ div
.attribution
{
193 div
.admonitionblock
.icon
{
197 text-decoration: underline
;
199 padding-right: 0.5em;
201 div
.admonitionblock td
.content
{
203 border-left: 2px solid silver
;
206 div
.exampleblock
> div
.content
{
207 border-left: 2px solid silver
;
211 div
.imageblock div
.content
{ padding-left: 0; }
212 span
.image img
{ border-style: none
; }
213 a
.image:visited
{ color: white
; }
217 margin-bottom: 0.8em;
230 list-style-position: outside
;
233 list-style-type: decimal
;
236 list-style-type: lower-alpha
;
239 list-style-type: upper-alpha
;
242 list-style-type: lower-roman
;
245 list-style-type: upper-roman
;
248 div
.compact ul
, div
.compact ol
,
249 div
.compact p
, div
.compact p
,
250 div
.compact div
, div
.compact div
{
252 margin-bottom: 0.1em;
255 div
.tableblock
> table
{
256 border: 3px solid
#527bbd;
259 font-family: sans-serif
;
271 /* Because the table frame attribute is overriden by CSS in most browsers. */
272 div
.tableblock
> table
[frame
="void"] {
275 div
.tableblock
> table
[frame
="hsides"] {
276 border-left-style: none
;
277 border-right-style: none
;
279 div
.tableblock
> table
[frame
="vsides"] {
280 border-top-style: none
;
281 border-bottom-style: none
;
287 margin-bottom: 0.8em;
290 padding-bottom: 15px;
292 dt
.hdlist1
.strong
, td
.hdlist1
.strong
{
298 padding-right: 0.8em;
304 div
.hdlist
.compact tr
{
314 div#footer-badges
{ display: none
; }
319 font-family: sans-serif
;
323 margin-bottom: 0.1em;
326 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
342 /* Overrides for manpage documents */
345 padding-bottom: 0.5em;
346 border-top: 2px solid silver
;
347 border-bottom: 2px solid silver
;
357 div#toc
{ display: none
; }
360 /* Workarounds for IE6's broken and incomplete CSS2. */
362 div
.sidebar-content
{
364 border: 1px solid silver
;
367 div
.sidebar-title
, div
.image-title
{
369 font-family: sans-serif
;
372 margin-bottom: 0.5em;
375 div
.listingblock div
.content
{
376 border: 1px solid silver
;
381 div
.quoteblock-attribution
{
386 div
.verseblock-content
{
389 div
.verseblock-attribution
{
394 div
.exampleblock-content
{
395 border-left: 2px solid silver
;
399 /* IE6 sets dynamically generated links as visited. */
400 div#toc
a:visited
{ color: blue
; }
406 git-whatchanged(
1) Manual Page
409 <div class=
"sectionbody">
411 Show logs with difference each commit introduces
415 <h2 id=
"_synopsis">SYNOPSIS
</h2>
416 <div class=
"sectionbody">
417 <div class=
"paragraph"><p><em>git whatchanged
</em> <option
>…</p></div>
419 <h2 id=
"_description">DESCRIPTION
</h2>
420 <div class=
"sectionbody">
421 <div class=
"paragraph"><p>Shows commit logs and diff output each commit introduces. The
422 command internally invokes
<em>git rev-list
</em> piped to
423 <em>git diff-tree
</em>, and takes command line options for both of
424 these commands.
</p></div>
425 <div class=
"paragraph"><p>This manual page describes only the most frequently used options.
</p></div>
427 <h2 id=
"_options">OPTIONS
</h2>
428 <div class=
"sectionbody">
429 <div class=
"dlist"><dl>
435 Show textual diffs, instead of the git internal diff
436 output format that is useful only to tell the changed
437 paths and their nature of changes.
445 Limit output to
<n
> commits.
449 <since
>..
<until
>
453 Limit output to between the two named commits (bottom
454 exclusive, top inclusive).
462 Show git internal diff output, but for the whole tree,
463 not just the top level.
471 By default, differences for merge commits are not shown.
472 With this flag, show differences to that commit from all
475 <div class=
"paragraph"><p>However, it is not very useful in general, although it
476 <strong>is
</strong> useful on a file-by-file basis.
</p></div>
479 --pretty[=
<format
>]
482 --format=
<format
>
486 Pretty-print the contents of the commit logs in a given format,
487 where
<em><format
></em> can be one of
<em>oneline
</em>,
<em>short
</em>,
<em>medium
</em>,
488 <em>full
</em>,
<em>fuller
</em>,
<em>email
</em>,
<em>raw
</em> and
<em>format:
<string
></em>. See
489 the
"PRETTY FORMATS" section for some additional details for each
490 format. When omitted, the format defaults to
<em>medium
</em>.
492 <div class=
"paragraph"><p>Note: you can specify the default pretty format in the repository
493 configuration (see
<a href=
"git-config.html">git-config(
1)
</a>).
</p></div>
500 Instead of showing the full
40-byte hexadecimal commit object
501 name, show only a partial prefix. Non default number of
502 digits can be specified with
"--abbrev=<n>" (which also modifies
503 diff output, if it is displayed).
505 <div class=
"paragraph"><p>This should make
"--pretty=oneline" a whole lot more readable for
506 people using
80-column terminals.
</p></div>
513 This is a shorthand for
"--pretty=oneline --abbrev-commit"
518 --encoding[=
<encoding
>]
522 The commit objects record the encoding used for the log message
523 in their encoding header; this option can be used to tell the
524 command to re-code the commit log message in the encoding
525 preferred by the user. For non plumbing commands this
533 --show-notes[=
<ref
>]
537 Show the notes (see
<a href=
"git-notes.html">git-notes(
1)
</a>) that annotate the
538 commit, when showing the commit log message. This is the default
539 for
<tt>git log
</tt>,
<tt>git show
</tt> and
<tt>git whatchanged
</tt> commands when
540 there is no
<tt>--pretty
</tt>,
<tt>--format
</tt> nor
<tt>--oneline
</tt> option is
541 given on the command line.
543 <div class=
"paragraph"><p>With an optional argument, add this ref to the list of notes. The ref
544 is taken to be in
<tt>refs/notes/
</tt> if it is not qualified.
</p></div>
547 --[no-]standard-notes
551 Enable or disable populating the notes ref list from the
552 <em>core.notesRef
</em> and
<em>notes.displayRef
</em> variables (or
553 corresponding environment overrides). Enabled by default.
554 See
<a href=
"git-config.html">git-config(
1)
</a>.
559 <h2 id=
"_pretty_formats">PRETTY FORMATS
</h2>
560 <div class=
"sectionbody">
561 <div class=
"paragraph"><p>If the commit is a merge, and if the pretty-format
562 is not
<em>oneline
</em>,
<em>email
</em> or
<em>raw
</em>, an additional line is
563 inserted before the
<em>Author:
</em> line. This line begins with
564 "Merge: " and the sha1s of ancestral commits are printed,
565 separated by spaces. Note that the listed commits may not
566 necessarily be the list of the
<strong>direct
</strong> parent commits if you
567 have limited your view of history: for example, if you are
568 only interested in changes related to a certain directory or
570 <div class=
"paragraph"><p>There are several built-in formats, and you can define
571 additional formats by setting a pretty.
<name
>
572 config option to either another format name, or a
573 <em>format:
</em> string, as described below (see
574 <a href=
"git-config.html">git-config(
1)
</a>). Here are the details of the
575 built-in formats:
</p></div>
576 <div class=
"ulist"><ul>
581 <div class=
"literalblock">
582 <div class=
"content">
583 <pre><tt><sha1
> <title line
></tt></pre>
585 <div class=
"paragraph"><p>This is designed to be as compact as possible.
</p></div>
591 <div class=
"literalblock">
592 <div class=
"content">
593 <pre><tt>commit
<sha1
>
594 Author:
<author
></tt></pre>
596 <div class=
"literalblock">
597 <div class=
"content">
598 <pre><tt><title line
></tt></pre>
605 <div class=
"literalblock">
606 <div class=
"content">
607 <pre><tt>commit
<sha1
>
608 Author:
<author
>
609 Date:
<author date
></tt></pre>
611 <div class=
"literalblock">
612 <div class=
"content">
613 <pre><tt><title line
></tt></pre>
615 <div class=
"literalblock">
616 <div class=
"content">
617 <pre><tt><full commit message
></tt></pre>
624 <div class=
"literalblock">
625 <div class=
"content">
626 <pre><tt>commit
<sha1
>
627 Author:
<author
>
628 Commit:
<committer
></tt></pre>
630 <div class=
"literalblock">
631 <div class=
"content">
632 <pre><tt><title line
></tt></pre>
634 <div class=
"literalblock">
635 <div class=
"content">
636 <pre><tt><full commit message
></tt></pre>
643 <div class=
"literalblock">
644 <div class=
"content">
645 <pre><tt>commit
<sha1
>
646 Author:
<author
>
647 AuthorDate:
<author date
>
648 Commit:
<committer
>
649 CommitDate:
<committer date
></tt></pre>
651 <div class=
"literalblock">
652 <div class=
"content">
653 <pre><tt><title line
></tt></pre>
655 <div class=
"literalblock">
656 <div class=
"content">
657 <pre><tt><full commit message
></tt></pre>
664 <div class=
"literalblock">
665 <div class=
"content">
666 <pre><tt>From
<sha1
> <date
>
668 Date:
<author date
>
669 Subject: [PATCH]
<title line
></tt></pre>
671 <div class=
"literalblock">
672 <div class=
"content">
673 <pre><tt><full commit message
></tt></pre>
680 <div class=
"paragraph"><p>The
<em>raw
</em> format shows the entire commit exactly as
681 stored in the commit object. Notably, the SHA1s are
682 displayed in full, regardless of whether --abbrev or
683 --no-abbrev are used, and
<em>parents
</em> information show the
684 true parent commits, without taking grafts nor history
685 simplification into account.
</p></div>
689 <em>format:
<string
></em>
691 <div class=
"paragraph"><p>The
<em>format:
<string
></em> format allows you to specify which information
692 you want to show. It works a little bit like printf format,
693 with the notable exception that you get a newline with
<em>%n
</em>
694 instead of
<em>\n
</em>.
</p></div>
695 <div class=
"paragraph"><p>E.g,
<em>format:
"The author of %h was %an, %ar%nThe title was >>%s<<%n"</em>
696 would show something like this:
</p></div>
697 <div class=
"listingblock">
698 <div class=
"content">
699 <pre><tt>The author of fe6e0ee was Junio C Hamano,
23 hours ago
700 The title was
>>t4119: test autocomputing -p
<n
> for traditional diff input.
<<</tt></pre>
702 <div class=
"paragraph"><p>The placeholders are:
</p></div>
703 <div class=
"ulist"><ul>
706 <em>%H
</em>: commit hash
711 <em>%h
</em>: abbreviated commit hash
716 <em>%T
</em>: tree hash
721 <em>%t
</em>: abbreviated tree hash
726 <em>%P
</em>: parent hashes
731 <em>%p
</em>: abbreviated parent hashes
736 <em>%an
</em>: author name
741 <em>%aN
</em>: author name (respecting .mailmap, see
<a href=
"git-shortlog.html">git-shortlog(
1)
</a> or
<a href=
"git-blame.html">git-blame(
1)
</a>)
746 <em>%ae
</em>: author email
751 <em>%aE
</em>: author email (respecting .mailmap, see
<a href=
"git-shortlog.html">git-shortlog(
1)
</a> or
<a href=
"git-blame.html">git-blame(
1)
</a>)
756 <em>%ad
</em>: author date (format respects --date= option)
761 <em>%aD
</em>: author date, RFC2822 style
766 <em>%ar
</em>: author date, relative
771 <em>%at
</em>: author date, UNIX timestamp
776 <em>%ai
</em>: author date, ISO
8601 format
781 <em>%cn
</em>: committer name
786 <em>%cN
</em>: committer name (respecting .mailmap, see
<a href=
"git-shortlog.html">git-shortlog(
1)
</a> or
<a href=
"git-blame.html">git-blame(
1)
</a>)
791 <em>%ce
</em>: committer email
796 <em>%cE
</em>: committer email (respecting .mailmap, see
<a href=
"git-shortlog.html">git-shortlog(
1)
</a> or
<a href=
"git-blame.html">git-blame(
1)
</a>)
801 <em>%cd
</em>: committer date
806 <em>%cD
</em>: committer date, RFC2822 style
811 <em>%cr
</em>: committer date, relative
816 <em>%ct
</em>: committer date, UNIX timestamp
821 <em>%ci
</em>: committer date, ISO
8601 format
826 <em>%d
</em>: ref names, like the --decorate option of
<a href=
"git-log.html">git-log(
1)
</a>
831 <em>%e
</em>: encoding
841 <em>%f
</em>: sanitized subject line, suitable for a filename
851 <em>%B
</em>: raw body (unwrapped subject and body)
856 <em>%N
</em>: commit notes
861 <em>%gD
</em>: reflog selector, e.g.,
<tt>refs/stash@{
1}
</tt>
866 <em>%gd
</em>: shortened reflog selector, e.g.,
<tt>stash@{
1}
</tt>
871 <em>%gs
</em>: reflog subject
876 <em>%Cred
</em>: switch color to red
881 <em>%Cgreen
</em>: switch color to green
886 <em>%Cblue
</em>: switch color to blue
891 <em>%Creset
</em>: reset color
896 <em>%C(
…)
</em>: color specification, as described in color.branch.* config option
901 <em>%m
</em>: left, right or boundary mark
911 <em>%%
</em>: a raw
<em>%
</em>
916 <em>%x00
</em>: print a byte from a hex code
921 <em>%w([
<w
>[,
<i1
>[,
<i2
>]]])
</em>: switch line wrapping, like the -w option of
922 <a href=
"git-shortlog.html">git-shortlog(
1)
</a>.
928 <div class=
"admonitionblock">
931 <div class=
"title">Note
</div>
933 <td class=
"content">Some placeholders may depend on other options given to the
934 revision traversal engine. For example, the
<tt>%g*
</tt> reflog options will
935 insert an empty string unless we are traversing reflog entries (e.g., by
936 <tt>git log -g
</tt>). The
<tt>%d
</tt> placeholder will use the
"short" decoration
937 format if
<tt>--decorate
</tt> was not already provided on the command line.
</td>
940 <div class=
"paragraph"><p>If you add a
<tt>+</tt> (plus sign) after
<em>%
</em> of a placeholder, a line-feed
941 is inserted immediately before the expansion if and only if the
942 placeholder expands to a non-empty string.
</p></div>
943 <div class=
"paragraph"><p>If you add a
<tt>-
</tt> (minus sign) after
<em>%
</em> of a placeholder, line-feeds that
944 immediately precede the expansion are deleted if and only if the
945 placeholder expands to an empty string.
</p></div>
946 <div class=
"paragraph"><p>If you add a ` ` (space) after
<em>%
</em> of a placeholder, a space
947 is inserted immediately before the expansion if and only if the
948 placeholder expands to a non-empty string.
</p></div>
949 <div class=
"ulist"><ul>
954 <div class=
"paragraph"><p>The
<em>tformat:
</em> format works exactly like
<em>format:
</em>, except that it
955 provides
"terminator" semantics instead of
"separator" semantics. In
956 other words, each commit has the message terminator character (usually a
957 newline) appended, rather than a separator placed between entries.
958 This means that the final entry of a single-line format will be properly
959 terminated with a new line, just as the
"oneline" format does.
960 For example:
</p></div>
961 <div class=
"listingblock">
962 <div class=
"content">
963 <pre><tt>$ git log -
2 --pretty=format:%h
4da45bef \
964 | perl -pe '$_ .=
" -- NO NEWLINE\n" unless /\n/'
966 7134973 -- NO NEWLINE
968 $ git log -
2 --pretty=tformat:%h
4da45bef \
969 | perl -pe '$_ .=
" -- NO NEWLINE\n" unless /\n/'
973 <div class=
"paragraph"><p>In addition, any unrecognized string that has a
<tt>%
</tt> in it is interpreted
974 as if it has
<tt>tformat:
</tt> in front of it. For example, these two are
975 equivalent:
</p></div>
976 <div class=
"listingblock">
977 <div class=
"content">
978 <pre><tt>$ git log -
2 --pretty=tformat:%h
4da45bef
979 $ git log -
2 --pretty=%h
4da45bef
</tt></pre>
984 <h2 id=
"_examples">Examples
</h2>
985 <div class=
"sectionbody">
986 <div class=
"dlist"><dl>
988 git whatchanged -p v2.6
.12.. include/scsi drivers/scsi
992 Show as patches the commits since version
<em>v2.6
.12</em> that changed
993 any file in the include/scsi or drivers/scsi subdirectories
997 git whatchanged
--since=
"2 weeks ago" -- gitk
1001 Show the changes during the last two weeks to the file
<em>gitk
</em>.
1002 The
"--" is necessary to avoid confusion with the
<strong>branch
</strong> named
1008 <h2 id=
"_git">GIT
</h2>
1009 <div class=
"sectionbody">
1010 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
1013 <div id=
"footer-text">
1014 Last updated
2011-
03-
15 23:
30:
15 UTC