1GIT-LOG(1)                        Git Manual                        GIT-LOG(1)
2
3
4

NAME

6       git-log - Show commit logs
7

SYNOPSIS

9       git log [<options>] [<since>..<until>] [[--] <path>...]
10

DESCRIPTION

12       Shows the commit logs.
13
14       The command takes options applicable to the git rev-list command to
15       control what is shown and how, and options applicable to the git diff-*
16       commands to control how the changes each commit introduces are shown.
17

OPTIONS

19       -<n>
20           Limits the number of commits to show. Note that this is a commit
21           limiting option, see below.
22
23       <since>..<until>
24           Show only commits between the named two commits. When either
25           <since> or <until> is omitted, it defaults to HEAD, i.e. the tip of
26           the current branch. For a more complete list of ways to spell
27           <since> and <until>, see gitrevisions(7).
28
29       --follow
30           Continue listing the history of a file beyond renames (works only
31           for a single file).
32
33       --no-decorate, --decorate[=short|full|no]
34           Print out the ref names of any commits that are shown. If short is
35           specified, the ref name prefixes refs/heads/, refs/tags/ and
36           refs/remotes/ will not be printed. If full is specified, the full
37           ref name (including prefix) will be printed. The default option is
38           short.
39
40       --source
41           Print out the ref name given on the command line by which each
42           commit was reached.
43
44       --full-diff
45           Without this flag, "git log -p <path>..." shows commits that touch
46           the specified paths, and diffs about the same specified paths. With
47           this, the full diff is shown for commits that touch the specified
48           paths; this means that "<path>..." limits only commits, and doesn’t
49           limit diff for those commits.
50
51           Note that this affects all diff-based output types, e.g. those
52           produced by --stat etc.
53
54       --log-size
55           Before the log message print out its size in bytes. Intended mainly
56           for porcelain tools consumption. If git is unable to produce a
57           valid value size is set to zero. Note that only message is
58           considered, if also a diff is shown its size is not included.
59
60       [--] <path>...
61           Show only commits that affect any of the specified paths. To
62           prevent confusion with options and branch names, paths may need to
63           be prefixed with "-- " to separate them from options or refnames.
64
65   Commit Limiting
66       Besides specifying a range of commits that should be listed using the
67       special notations explained in the description, additional commit
68       limiting may be applied. Note that they are applied before commit
69       ordering and formatting options, such as --reverse.
70
71       -n number, --max-count=<number>
72           Limit the number of commits to output.
73
74       --skip=<number>
75           Skip number commits before starting to show the commit output.
76
77       --since=<date>, --after=<date>
78           Show commits more recent than a specific date.
79
80       --until=<date>, --before=<date>
81           Show commits older than a specific date.
82
83       --author=<pattern>, --committer=<pattern>
84           Limit the commits output to ones with author/committer header lines
85           that match the specified pattern (regular expression).
86
87       --grep=<pattern>
88           Limit the commits output to ones with log message that matches the
89           specified pattern (regular expression).
90
91       --all-match
92           Limit the commits output to ones that match all given --grep,
93           --author and --committer instead of ones that match at least one.
94
95       -i, --regexp-ignore-case
96           Match the regexp limiting patterns without regard to letters case.
97
98       -E, --extended-regexp
99           Consider the limiting patterns to be extended regular expressions
100           instead of the default basic regular expressions.
101
102       -F, --fixed-strings
103           Consider the limiting patterns to be fixed strings (don’t interpret
104           pattern as a regular expression).
105
106       --remove-empty
107           Stop when a given path disappears from the tree.
108
109       --merges
110           Print only merge commits.
111
112       --no-merges
113           Do not print commits with more than one parent.
114
115       --first-parent
116           Follow only the first parent commit upon seeing a merge commit.
117           This option can give a better overview when viewing the evolution
118           of a particular topic branch, because merges into a topic branch
119           tend to be only about adjusting to updated upstream from time to
120           time, and this option allows you to ignore the individual commits
121           brought in to your history by such a merge.
122
123       --not
124           Reverses the meaning of the ^ prefix (or lack thereof) for all
125           following revision specifiers, up to the next --not.
126
127       --all
128           Pretend as if all the refs in refs/ are listed on the command line
129           as <commit>.
130
131       --branches[=<pattern>]
132           Pretend as if all the refs in refs/heads are listed on the command
133           line as <commit>. If <pattern> is given, limit branches to ones
134           matching given shell glob. If pattern lacks ?, , or [, / at the end
135           is implied.
136
137       --tags[=<pattern>]
138           Pretend as if all the refs in refs/tags are listed on the command
139           line as <commit>. If <pattern> is given, limit tags to ones
140           matching given shell glob. If pattern lacks ?, , or [, / at the end
141           is implied.
142
143       --remotes[=<pattern>]
144           Pretend as if all the refs in refs/remotes are listed on the
145           command line as <commit>. If <pattern> is given, limit
146           remote-tracking branches to ones matching given shell glob. If
147           pattern lacks ?, , or [, / at the end is implied.
148
149       --glob=<glob-pattern>
150           Pretend as if all the refs matching shell glob <glob-pattern> are
151           listed on the command line as <commit>. Leading refs/, is
152           automatically prepended if missing. If pattern lacks ?, , or [, /
153           at the end is implied.
154
155       --bisect
156           Pretend as if the bad bisection ref refs/bisect/bad was listed and
157           as if it was followed by --not and the good bisection refs
158           refs/bisect/good-* on the command line.
159
160       --stdin
161           In addition to the <commit> listed on the command line, read them
162           from the standard input. If a -- separator is seen, stop reading
163           commits and start reading paths to limit the result.
164
165       --cherry-pick
166           Omit any commit that introduces the same change as another commit
167           on the "other side" when the set of commits are limited with
168           symmetric difference.
169
170           For example, if you have two branches, A and B, a usual way to list
171           all commits on only one side of them is with --left-right, like the
172           example above in the description of that option. It however shows
173           the commits that were cherry-picked from the other branch (for
174           example, "3rd on b" may be cherry-picked from branch A). With this
175           option, such pairs of commits are excluded from the output.
176
177       -g, --walk-reflogs
178           Instead of walking the commit ancestry chain, walk reflog entries
179           from the most recent one to older ones. When this option is used
180           you cannot specify commits to exclude (that is, ^commit,
181           commit1..commit2, nor commit1...commit2 notations cannot be used).
182
183           With --pretty format other than oneline (for obvious reasons), this
184           causes the output to have two extra lines of information taken from
185           the reflog. By default, commit@{Nth} notation is used in the
186           output. When the starting commit is specified as commit@{now},
187           output also uses commit@{timestamp} notation instead. Under
188           --pretty=oneline, the commit message is prefixed with this
189           information on the same line. This option cannot be combined with
190           --reverse. See also git-reflog(1).
191
192       --merge
193           After a failed merge, show refs that touch files having a conflict
194           and don’t exist on all heads to merge.
195
196       --boundary
197           Output uninteresting commits at the boundary, which are usually not
198           shown.
199
200   History Simplification
201       Sometimes you are only interested in parts of the history, for example
202       the commits modifying a particular <path>. But there are two parts of
203       History Simplification, one part is selecting the commits and the other
204       is how to do it, as there are various strategies to simplify the
205       history.
206
207       The following options select the commits to be shown:
208
209       <paths>
210           Commits modifying the given <paths> are selected.
211
212       --simplify-by-decoration
213           Commits that are referred by some branch or tag are selected.
214
215       Note that extra commits can be shown to give a meaningful history.
216
217       The following options affect the way the simplification is performed:
218
219       Default mode
220           Simplifies the history to the simplest history explaining the final
221           state of the tree. Simplest because it prunes some side branches if
222           the end result is the same (i.e. merging branches with the same
223           content)
224
225       --full-history
226           As the default mode but does not prune some history.
227
228       --dense
229           Only the selected commits are shown, plus some to have a meaningful
230           history.
231
232       --sparse
233           All commits in the simplified history are shown.
234
235       --simplify-merges
236           Additional option to --full-history to remove some needless merges
237           from the resulting history, as there are no selected commits
238           contributing to this merge.
239
240       --ancestry-path
241           When given a range of commits to display (e.g.  commit1..commit2 or
242           commit2 ^commit1), only display commits that exist directly on the
243           ancestry chain between the commit1 and commit2, i.e. commits that
244           are both descendants of commit1, and ancestors of commit2.
245
246       A more detailed explanation follows.
247
248       Suppose you specified foo as the <paths>. We shall call commits that
249       modify foo !TREESAME, and the rest TREESAME. (In a diff filtered for
250       foo, they look different and equal, respectively.)
251
252       In the following, we will always refer to the same example history to
253       illustrate the differences between simplification settings. We assume
254       that you are filtering for a file foo in this commit graph:
255
256                     .-A---M---N---O---P
257                    /     /   /   /   /
258                   I     B   C   D   E
259                    \   /   /   /   /
260                     `-------------'
261
262
263       The horizontal line of history A—P is taken to be the first parent of
264       each merge. The commits are:
265
266       ·    I is the initial commit, in which foo exists with contents "asdf",
267           and a file quux exists with contents "quux". Initial commits are
268           compared to an empty tree, so I is !TREESAME.
269
270       ·   In A, foo contains just "foo".
271
272       ·    B contains the same change as A. Its merge M is trivial and hence
273           TREESAME to all parents.
274
275       ·    C does not change foo, but its merge N changes it to "foobar", so
276           it is not TREESAME to any parent.
277
278       ·    D sets foo to "baz". Its merge O combines the strings from N and D
279           to "foobarbaz"; i.e., it is not TREESAME to any parent.
280
281       ·    E changes quux to "xyzzy", and its merge P combines the strings to
282           "quux xyzzy". Despite appearing interesting, P is TREESAME to all
283           parents.
284
285       rev-list walks backwards through history, including or excluding
286       commits based on whether --full-history and/or parent rewriting (via
287       --parents or --children) are used. The following settings are
288       available.
289
290       Default mode
291           Commits are included if they are not TREESAME to any parent (though
292           this can be changed, see --sparse below). If the commit was a
293           merge, and it was TREESAME to one parent, follow only that parent.
294           (Even if there are several TREESAME parents, follow only one of
295           them.) Otherwise, follow all parents.
296
297           This results in:
298
299                         .-A---N---O
300                        /     /   /
301                       I---------D
302
303           Note how the rule to only follow the TREESAME parent, if one is
304           available, removed B from consideration entirely.  C was considered
305           via N, but is TREESAME. Root commits are compared to an empty tree,
306           so I is !TREESAME.
307
308           Parent/child relations are only visible with --parents, but that
309           does not affect the commits selected in default mode, so we have
310           shown the parent lines.
311
312       --full-history without parent rewriting
313           This mode differs from the default in one point: always follow all
314           parents of a merge, even if it is TREESAME to one of them. Even if
315           more than one side of the merge has commits that are included, this
316           does not imply that the merge itself is! In the example, we get
317
318                       I  A  B  N  D  O
319
320           P and M were excluded because they are TREESAME to a parent.  E, C
321           and B were all walked, but only B was !TREESAME, so the others do
322           not appear.
323
324           Note that without parent rewriting, it is not really possible to
325           talk about the parent/child relationships between the commits, so
326           we show them disconnected.
327
328       --full-history with parent rewriting
329           Ordinary commits are only included if they are !TREESAME (though
330           this can be changed, see --sparse below).
331
332           Merges are always included. However, their parent list is
333           rewritten: Along each parent, prune away commits that are not
334           included themselves. This results in
335
336                         .-A---M---N---O---P
337                        /     /   /   /   /
338                       I     B   /   D   /
339                        \   /   /   /   /
340                         `-------------'
341
342           Compare to --full-history without rewriting above. Note that E was
343           pruned away because it is TREESAME, but the parent list of P was
344           rewritten to contain E's parent I. The same happened for C and N.
345           Note also that P was included despite being TREESAME.
346
347       In addition to the above settings, you can change whether TREESAME
348       affects inclusion:
349
350       --dense
351           Commits that are walked are included if they are not TREESAME to
352           any parent.
353
354       --sparse
355           All commits that are walked are included.
356
357           Note that without --full-history, this still simplifies merges: if
358           one of the parents is TREESAME, we follow only that one, so the
359           other sides of the merge are never walked.
360
361       --simplify-merges
362           First, build a history graph in the same way that --full-history
363           with parent rewriting does (see above).
364
365           Then simplify each commit ‘C` to its replacement C’ in the final
366           history according to the following rules:
367
368           ·   Set ‘C’` to C.
369
370           ·   Replace each parent ‘P` of C’ with its simplification ‘P’`. In
371               the process, drop parents that are ancestors of other parents,
372               and remove duplicates.
373
374           ·   If after this parent rewriting, ‘C’` is a root or merge commit
375               (has zero or >1 parents), a boundary commit, or !TREESAME, it
376               remains. Otherwise, it is replaced with its only parent.
377
378           The effect of this is best shown by way of comparing to
379           --full-history with parent rewriting. The example turns into:
380
381                         .-A---M---N---O
382                        /     /       /
383                       I     B       D
384                        \   /       /
385                         `---------'
386
387           Note the major differences in N and P over --full-history:
388
389           ·    N's parent list had I removed, because it is an ancestor of
390               the other parent M. Still, N remained because it is !TREESAME.
391
392           ·    P's parent list similarly had I removed.  P was then removed
393               completely, because it had one parent and is TREESAME.
394
395       Finally, there is a fifth simplification mode available:
396
397       --ancestry-path
398           Limit the displayed commits to those directly on the ancestry chain
399           between the "from" and "to" commits in the given commit range. I.e.
400           only display commits that are ancestor of the "to" commit, and
401           descendants of the "from" commit.
402
403           As an example use case, consider the following commit history:
404
405                           D---E-------F
406                          /     \       \
407                         B---C---G---H---I---J
408                        /                     \
409                       A-------K---------------L--M
410
411           A regular D..M computes the set of commits that are ancestors of M,
412           but excludes the ones that are ancestors of D. This is useful to
413           see what happened to the history leading to M since D, in the sense
414           that "what does M have that did not exist in D". The result in this
415           example would be all the commits, except A and B (and D itself, of
416           course).
417
418           When we want to find out what commits in M are contaminated with
419           the bug introduced by D and need fixing, however, we might want to
420           view only the subset of D..M that are actually descendants of D,
421           i.e. excluding C and K. This is exactly what the --ancestry-path
422           option does. Applied to the D..M range, it results in:
423
424                               E-------F
425                                \       \
426                                 G---H---I---J
427                                              \
428                                               L--M
429
430
431       The --simplify-by-decoration option allows you to view only the big
432       picture of the topology of the history, by omitting commits that are
433       not referenced by tags. Commits are marked as !TREESAME (in other
434       words, kept after history simplification rules described above) if (1)
435       they are referenced by tags, or (2) they change the contents of the
436       paths given on the command line. All other commits are marked as
437       TREESAME (subject to be simplified away).
438
439   Commit Ordering
440       By default, the commits are shown in reverse chronological order.
441
442       --topo-order
443           This option makes them appear in topological order (i.e. descendant
444           commits are shown before their parents).
445
446       --date-order
447           This option is similar to --topo-order in the sense that no parent
448           comes before all of its children, but otherwise things are still
449           ordered in the commit timestamp order.
450
451       --reverse
452           Output the commits in reverse order. Cannot be combined with
453           --walk-reflogs.
454
455   Object Traversal
456       These options are mostly targeted for packing of git repositories.
457
458       --objects
459           Print the object IDs of any object referenced by the listed
460           commits.  --objects foo ^bar thus means "send me all object IDs
461           which I need to download if I have the commit object bar, but not
462           foo".
463
464       --objects-edge
465           Similar to --objects, but also print the IDs of excluded commits
466           prefixed with a "-" character. This is used by git-pack-objects(1)
467           to build "thin" pack, which records objects in deltified form based
468           on objects contained in these excluded commits to reduce network
469           traffic.
470
471       --unpacked
472           Only useful with --objects; print the object IDs that are not in
473           packs.
474
475       --no-walk
476           Only show the given revs, but do not traverse their ancestors.
477
478       --do-walk
479           Overrides a previous --no-walk.
480
481   Commit Formatting
482       --pretty[=<format>], --format=<format>
483           Pretty-print the contents of the commit logs in a given format,
484           where <format> can be one of oneline, short, medium, full, fuller,
485           email, raw and format:<string>. See the "PRETTY FORMATS" section
486           for some additional details for each format. When omitted, the
487           format defaults to medium.
488
489           Note: you can specify the default pretty format in the repository
490           configuration (see git-config(1)).
491
492       --abbrev-commit
493           Instead of showing the full 40-byte hexadecimal commit object name,
494           show only a partial prefix. Non default number of digits can be
495           specified with "--abbrev=<n>" (which also modifies diff output, if
496           it is displayed).
497
498           This should make "--pretty=oneline" a whole lot more readable for
499           people using 80-column terminals.
500
501       --oneline
502           This is a shorthand for "--pretty=oneline --abbrev-commit" used
503           together.
504
505       --encoding[=<encoding>]
506           The commit objects record the encoding used for the log message in
507           their encoding header; this option can be used to tell the command
508           to re-code the commit log message in the encoding preferred by the
509           user. For non plumbing commands this defaults to UTF-8.
510
511       --no-notes, --show-notes[=<ref>]
512           Show the notes (see git-notes(1)) that annotate the commit, when
513           showing the commit log message. This is the default for git log,
514           git show and git whatchanged commands when there is no --pretty,
515           --format nor --oneline option is given on the command line.
516
517           With an optional argument, add this ref to the list of notes. The
518           ref is taken to be in refs/notes/ if it is not qualified.
519
520       --[no-]standard-notes
521           Enable or disable populating the notes ref list from the
522           core.notesRef and notes.displayRef variables (or corresponding
523           environment overrides). Enabled by default. See git-config(1).
524
525       --relative-date
526           Synonym for --date=relative.
527
528       --date=(relative|local|default|iso|rfc|short|raw)
529           Only takes effect for dates shown in human-readable format, such as
530           when using "--pretty".  log.date config variable sets a default
531           value for log command’s --date option.
532
533           --date=relative shows dates relative to the current time, e.g. "2
534           hours ago".
535
536           --date=local shows timestamps in user’s local timezone.
537
538           --date=iso (or --date=iso8601) shows timestamps in ISO 8601 format.
539
540           --date=rfc (or --date=rfc2822) shows timestamps in RFC 2822 format,
541           often found in E-mail messages.
542
543           --date=short shows only date but not time, in YYYY-MM-DD format.
544
545           --date=raw shows the date in the internal raw git format %s %z
546           format.
547
548           --date=default shows timestamps in the original timezone (either
549           committer’s or author’s).
550
551       --parents
552           Print also the parents of the commit (in the form "commit
553           parent..."). Also enables parent rewriting, see History
554           Simplification below.
555
556       --children
557           Print also the children of the commit (in the form "commit
558           child..."). Also enables parent rewriting, see History
559           Simplification below.
560
561       --left-right
562           Mark which side of a symmetric diff a commit is reachable from.
563           Commits from the left side are prefixed with < and those from the
564           right with >. If combined with --boundary, those commits are
565           prefixed with -.
566
567           For example, if you have this topology:
568
569                            y---b---b  branch B
570                           / \ /
571                          /   .
572                         /   / \
573                        o---x---a---a  branch A
574
575           you would get an output like this:
576
577                       $ git rev-list --left-right --boundary --pretty=oneline A...B
578
579                       >bbbbbbb... 3rd on b
580                       >bbbbbbb... 2nd on b
581                       <aaaaaaa... 3rd on a
582                       <aaaaaaa... 2nd on a
583                       -yyyyyyy... 1st on b
584                       -xxxxxxx... 1st on a
585
586
587       --graph
588           Draw a text-based graphical representation of the commit history on
589           the left hand side of the output. This may cause extra lines to be
590           printed in between commits, in order for the graph history to be
591           drawn properly.
592
593           This enables parent rewriting, see History Simplification below.
594
595           This implies the --topo-order option by default, but the
596           --date-order option may also be specified.
597
598   Diff Formatting
599       Below are listed options that control the formatting of diff output.
600       Some of them are specific to git-rev-list(1), however other diff
601       options may be given. See git-diff-files(1) for more options.
602
603       -c
604           With this option, diff output for a merge commit shows the
605           differences from each of the parents to the merge result
606           simultaneously instead of showing pairwise diff between a parent
607           and the result one at a time. Furthermore, it lists only files
608           which were modified from all parents.
609
610       --cc
611           This flag implies the -c options and further compresses the patch
612           output by omitting uninteresting hunks whose contents in the
613           parents have only two variants and the merge result picks one of
614           them without modification.
615
616       -m
617           This flag makes the merge commits show the full diff like regular
618           commits; for each merge parent, a separate log entry and diff is
619           generated. An exception is that only diff against the first parent
620           is shown when --first-parent option is given; in that case, the
621           output represents the changes the merge brought into the
622           then-current branch.
623
624       -r
625           Show recursive diffs.
626
627       -t
628           Show the tree objects in the diff output. This implies -r.
629
630       -s
631           Suppress diff output.
632

PRETTY FORMATS

634       If the commit is a merge, and if the pretty-format is not oneline,
635       email or raw, an additional line is inserted before the Author: line.
636       This line begins with "Merge: " and the sha1s of ancestral commits are
637       printed, separated by spaces. Note that the listed commits may not
638       necessarily be the list of the direct parent commits if you have
639       limited your view of history: for example, if you are only interested
640       in changes related to a certain directory or file.
641
642       There are several built-in formats, and you can define additional
643       formats by setting a pretty.<name> config option to either another
644       format name, or a format: string, as described below (see git-
645       config(1)). Here are the details of the built-in formats:
646
647       ·    oneline
648
649               <sha1> <title line>
650
651           This is designed to be as compact as possible.
652
653       ·    short
654
655               commit <sha1>
656               Author: <author>
657
658               <title line>
659
660       ·    medium
661
662               commit <sha1>
663               Author: <author>
664               Date:   <author date>
665
666               <title line>
667
668               <full commit message>
669
670       ·    full
671
672               commit <sha1>
673               Author: <author>
674               Commit: <committer>
675
676               <title line>
677
678               <full commit message>
679
680       ·    fuller
681
682               commit <sha1>
683               Author:     <author>
684               AuthorDate: <author date>
685               Commit:     <committer>
686               CommitDate: <committer date>
687
688               <title line>
689
690               <full commit message>
691
692       ·    email
693
694               From <sha1> <date>
695               From: <author>
696               Date: <author date>
697               Subject: [PATCH] <title line>
698
699               <full commit message>
700
701       ·    raw
702
703           The raw format shows the entire commit exactly as stored in the
704           commit object. Notably, the SHA1s are displayed in full, regardless
705           of whether --abbrev or --no-abbrev are used, and parents
706           information show the true parent commits, without taking grafts nor
707           history simplification into account.
708
709       ·    format:<string>
710
711           The format:<string> format allows you to specify which information
712           you want to show. It works a little bit like printf format, with
713           the notable exception that you get a newline with %n instead of \n.
714
715           E.g, format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"
716           would show something like this:
717
718               The author of fe6e0ee was Junio C Hamano, 23 hours ago
719               The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<
720
721           The placeholders are:
722
723           ·    %H: commit hash
724
725           ·    %h: abbreviated commit hash
726
727           ·    %T: tree hash
728
729           ·    %t: abbreviated tree hash
730
731           ·    %P: parent hashes
732
733           ·    %p: abbreviated parent hashes
734
735           ·    %an: author name
736
737           ·    %aN: author name (respecting .mailmap, see git-shortlog(1) or
738               git-blame(1))
739
740           ·    %ae: author email
741
742           ·    %aE: author email (respecting .mailmap, see git-shortlog(1) or
743               git-blame(1))
744
745           ·    %ad: author date (format respects --date= option)
746
747           ·    %aD: author date, RFC2822 style
748
749           ·    %ar: author date, relative
750
751           ·    %at: author date, UNIX timestamp
752
753           ·    %ai: author date, ISO 8601 format
754
755           ·    %cn: committer name
756
757           ·    %cN: committer name (respecting .mailmap, see git-shortlog(1)
758               or git-blame(1))
759
760           ·    %ce: committer email
761
762           ·    %cE: committer email (respecting .mailmap, see git-shortlog(1)
763               or git-blame(1))
764
765           ·    %cd: committer date
766
767           ·    %cD: committer date, RFC2822 style
768
769           ·    %cr: committer date, relative
770
771           ·    %ct: committer date, UNIX timestamp
772
773           ·    %ci: committer date, ISO 8601 format
774
775           ·    %d: ref names, like the --decorate option of git-log(1)
776
777           ·    %e: encoding
778
779           ·    %s: subject
780
781           ·    %f: sanitized subject line, suitable for a filename
782
783           ·    %b: body
784
785           ·    %B: raw body (unwrapped subject and body)
786
787           ·    %N: commit notes
788
789           ·    %gD: reflog selector, e.g., refs/stash@{1}
790
791           ·    %gd: shortened reflog selector, e.g., stash@{1}
792
793           ·    %gs: reflog subject
794
795           ·    %Cred: switch color to red
796
797           ·    %Cgreen: switch color to green
798
799           ·    %Cblue: switch color to blue
800
801           ·    %Creset: reset color
802
803           ·    %C(...): color specification, as described in color.branch.*
804               config option
805
806           ·    %m: left, right or boundary mark
807
808           ·    %n: newline
809
810           ·    %%: a raw %
811
812           ·    %x00: print a byte from a hex code
813
814           ·    %w([<w>[,<i1>[,<i2>]]]): switch line wrapping, like the -w
815               option of git-shortlog(1).
816
817           Note
818           Some placeholders may depend on other options given to the revision
819           traversal engine. For example, the %g* reflog options will insert
820           an empty string unless we are traversing reflog entries (e.g., by
821           git log -g). The %d placeholder will use the "short" decoration
822           format if --decorate was not already provided on the command line.
823
824       If you add a + (plus sign) after % of a placeholder, a line-feed is
825       inserted immediately before the expansion if and only if the
826       placeholder expands to a non-empty string.
827
828       If you add a - (minus sign) after % of a placeholder, line-feeds that
829       immediately precede the expansion are deleted if and only if the
830       placeholder expands to an empty string.
831
832       If you add a ` ` (space) after % of a placeholder, a space is inserted
833       immediately before the expansion if and only if the placeholder expands
834       to a non-empty string.
835
836       ·    tformat:
837
838           The tformat: format works exactly like format:, except that it
839           provides "terminator" semantics instead of "separator" semantics.
840           In other words, each commit has the message terminator character
841           (usually a newline) appended, rather than a separator placed
842           between entries. This means that the final entry of a single-line
843           format will be properly terminated with a new line, just as the
844           "oneline" format does. For example:
845
846               $ git log -2 --pretty=format:%h 4da45bef \
847                 | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/'
848               4da45be
849               7134973 -- NO NEWLINE
850
851               $ git log -2 --pretty=tformat:%h 4da45bef \
852                 | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/'
853               4da45be
854               7134973
855
856           In addition, any unrecognized string that has a % in it is
857           interpreted as if it has tformat: in front of it. For example,
858           these two are equivalent:
859
860               $ git log -2 --pretty=tformat:%h 4da45bef
861               $ git log -2 --pretty=%h 4da45bef
862
863

COMMON DIFF OPTIONS

865       -p, -u, --patch
866           Generate patch (see section on generating patches).
867
868       -U<n>, --unified=<n>
869           Generate diffs with <n> lines of context instead of the usual
870           three. Implies -p.
871
872       --raw
873           Generate the raw format.
874
875       --patch-with-raw
876           Synonym for -p --raw.
877
878       --patience
879           Generate a diff using the "patience diff" algorithm.
880
881       --stat[=<width>[,<name-width>]]
882           Generate a diffstat. You can override the default output width for
883           80-column terminal by --stat=<width>. The width of the filename
884           part can be controlled by giving another width to it separated by a
885           comma.
886
887       --numstat
888           Similar to --stat, but shows number of added and deleted lines in
889           decimal notation and pathname without abbreviation, to make it more
890           machine friendly. For binary files, outputs two - instead of saying
891           0 0.
892
893       --shortstat
894           Output only the last line of the --stat format containing total
895           number of modified files, as well as number of added and deleted
896           lines.
897
898       --dirstat[=<limit>]
899           Output the distribution of relative amount of changes (number of
900           lines added or removed) for each sub-directory. Directories with
901           changes below a cut-off percent (3% by default) are not shown. The
902           cut-off percent can be set with --dirstat=<limit>. Changes in a
903           child directory are not counted for the parent directory, unless
904           --cumulative is used.
905
906       --dirstat-by-file[=<limit>]
907           Same as --dirstat, but counts changed files instead of lines.
908
909       --summary
910           Output a condensed summary of extended header information such as
911           creations, renames and mode changes.
912
913       --patch-with-stat
914           Synonym for -p --stat.
915
916       -z
917           Separate the commits with NULs instead of with new newlines.
918
919           Also, when --raw or --numstat has been given, do not munge
920           pathnames and use NULs as output field terminators.
921
922           Without this option, each pathname output will have TAB, LF, double
923           quotes, and backslash characters replaced with \t, \n, \", and \\,
924           respectively, and the pathname will be enclosed in double quotes if
925           any of those replacements occurred.
926
927       --name-only
928           Show only names of changed files.
929
930       --name-status
931           Show only names and status of changed files. See the description of
932           the --diff-filter option on what the status letters mean.
933
934       --submodule[=<format>]
935           Chose the output format for submodule differences. <format> can be
936           one of short and log.  short just shows pairs of commit names, this
937           format is used when this option is not given.  log is the default
938           value for this option and lists the commits in that commit range
939           like the summary option of git-submodule(1) does.
940
941       --color[=<when>]
942           Show colored diff. The value must be always (the default), never,
943           or auto.
944
945       --no-color
946           Turn off colored diff, even when the configuration file gives the
947           default to color output. Same as --color=never.
948
949       --word-diff[=<mode>]
950           Show a word diff, using the <mode> to delimit changed words. By
951           default, words are delimited by whitespace; see --word-diff-regex
952           below. The <mode> defaults to plain, and must be one of:
953
954           color
955               Highlight changed words using only colors. Implies --color.
956
957           plain
958               Show words as [-removed-] and {added}. Makes no attempts to
959               escape the delimiters if they appear in the input, so the
960               output may be ambiguous.
961
962           porcelain
963               Use a special line-based format intended for script
964               consumption. Added/removed/unchanged runs are printed in the
965               usual unified diff format, starting with a +/-/` ` character at
966               the beginning of the line and extending to the end of the line.
967               Newlines in the input are represented by a tilde ~ on a line of
968               its own.
969
970           none
971               Disable word diff again.
972
973           Note that despite the name of the first mode, color is used to
974           highlight the changed parts in all modes if enabled.
975
976       --word-diff-regex=<regex>
977           Use <regex> to decide what a word is, instead of considering runs
978           of non-whitespace to be a word. Also implies --word-diff unless it
979           was already enabled.
980
981           Every non-overlapping match of the <regex> is considered a word.
982           Anything between these matches is considered whitespace and
983           ignored(!) for the purposes of finding differences. You may want to
984           append |[^[:space:]] to your regular expression to make sure that
985           it matches all non-whitespace characters. A match that contains a
986           newline is silently truncated(!) at the newline.
987
988           The regex can also be set via a diff driver or configuration
989           option, see gitattributes(1) or git-config(1). Giving it explicitly
990           overrides any diff driver or configuration setting. Diff drivers
991           override configuration settings.
992
993       --color-words[=<regex>]
994           Equivalent to --word-diff=color plus (if a regex was specified)
995           --word-diff-regex=<regex>.
996
997       --no-renames
998           Turn off rename detection, even when the configuration file gives
999           the default to do so.
1000
1001       --check
1002           Warn if changes introduce trailing whitespace or an indent that
1003           uses a space before a tab. Exits with non-zero status if problems
1004           are found. Not compatible with --exit-code.
1005
1006       --full-index
1007           Instead of the first handful of characters, show the full pre- and
1008           post-image blob object names on the "index" line when generating
1009           patch format output.
1010
1011       --binary
1012           In addition to --full-index, output a binary diff that can be
1013           applied with git-apply.
1014
1015       --abbrev[=<n>]
1016           Instead of showing the full 40-byte hexadecimal object name in
1017           diff-raw format output and diff-tree header lines, show only a
1018           partial prefix. This is independent of the --full-index option
1019           above, which controls the diff-patch output format. Non default
1020           number of digits can be specified with --abbrev=<n>.
1021
1022       -B[<n>][/<m>], --break-rewrites[=[<n>][/<m>]]
1023           Break complete rewrite changes into pairs of delete and create.
1024           This serves two purposes:
1025
1026           It affects the way a change that amounts to a total rewrite of a
1027           file not as a series of deletion and insertion mixed together with
1028           a very few lines that happen to match textually as the context, but
1029           as a single deletion of everything old followed by a single
1030           insertion of everything new, and the number m controls this aspect
1031           of the -B option (defaults to 60%).  -B/70% specifies that less
1032           than 30% of the original should remain in the result for git to
1033           consider it a total rewrite (i.e. otherwise the resulting patch
1034           will be a series of deletion and insertion mixed together with
1035           context lines).
1036
1037           When used with -M, a totally-rewritten file is also considered as
1038           the source of a rename (usually -M only considers a file that
1039           disappeared as the source of a rename), and the number n controls
1040           this aspect of the -B option (defaults to 50%).  -B20% specifies
1041           that a change with addition and deletion compared to 20% or more of
1042           the file’s size are eligible for being picked up as a possible
1043           source of a rename to another file.
1044
1045       -M[<n>], --find-renames[=<n>]
1046           If generating diffs, detect and report renames for each commit. For
1047           following files across renames while traversing history, see
1048           --follow. If n is specified, it is a is a threshold on the
1049           similarity index (i.e. amount of addition/deletions compared to the
1050           file’s size). For example, -M90% means git should consider a
1051           delete/add pair to be a rename if more than 90% of the file hasn’t
1052           changed.
1053
1054       -C[<n>], --find-copies[=<n>]
1055           Detect copies as well as renames. See also --find-copies-harder. If
1056           n is specified, it has the same meaning as for -M<n>.
1057
1058       --find-copies-harder
1059           For performance reasons, by default, -C option finds copies only if
1060           the original file of the copy was modified in the same changeset.
1061           This flag makes the command inspect unmodified files as candidates
1062           for the source of copy. This is a very expensive operation for
1063           large projects, so use it with caution. Giving more than one -C
1064           option has the same effect.
1065
1066       -l<num>
1067           The -M and -C options require O(n^2) processing time where n is the
1068           number of potential rename/copy targets. This option prevents
1069           rename/copy detection from running if the number of rename/copy
1070           targets exceeds the specified number.
1071
1072       --diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
1073           Select only files that are Added (A), Copied (C), Deleted (D),
1074           Modified (M), Renamed (R), have their type (i.e. regular file,
1075           symlink, submodule, ...) changed (T), are Unmerged (U), are Unknown
1076           (X), or have had their pairing Broken (B). Any combination of the
1077           filter characters (including none) can be used. When *
1078           (All-or-none) is added to the combination, all paths are selected
1079           if there is any file that matches other criteria in the comparison;
1080           if there is no file that matches other criteria, nothing is
1081           selected.
1082
1083       -S<string>
1084           Look for differences that introduce or remove an instance of
1085           <string>. Note that this is different than the string simply
1086           appearing in diff output; see the pickaxe entry in gitdiffcore(7)
1087           for more details.
1088
1089       -G<regex>
1090           Look for differences whose added or removed line matches the given
1091           <regex>.
1092
1093       --pickaxe-all
1094           When -S or -G finds a change, show all the changes in that
1095           changeset, not just the files that contain the change in <string>.
1096
1097       --pickaxe-regex
1098           Make the <string> not a plain string but an extended POSIX regex to
1099           match.
1100
1101       -O<orderfile>
1102           Output the patch in the order specified in the <orderfile>, which
1103           has one shell glob pattern per line.
1104
1105       -R
1106           Swap two inputs; that is, show differences from index or on-disk
1107           file to tree contents.
1108
1109       --relative[=<path>]
1110           When run from a subdirectory of the project, it can be told to
1111           exclude changes outside the directory and show pathnames relative
1112           to it with this option. When you are not in a subdirectory (e.g. in
1113           a bare repository), you can name which subdirectory to make the
1114           output relative to by giving a <path> as an argument.
1115
1116       -a, --text
1117           Treat all files as text.
1118
1119       --ignore-space-at-eol
1120           Ignore changes in whitespace at EOL.
1121
1122       -b, --ignore-space-change
1123           Ignore changes in amount of whitespace. This ignores whitespace at
1124           line end, and considers all other sequences of one or more
1125           whitespace characters to be equivalent.
1126
1127       -w, --ignore-all-space
1128           Ignore whitespace when comparing lines. This ignores differences
1129           even if one line has whitespace where the other line has none.
1130
1131       --inter-hunk-context=<lines>
1132           Show the context between diff hunks, up to the specified number of
1133           lines, thereby fusing hunks that are close to each other.
1134
1135       --exit-code
1136           Make the program exit with codes similar to diff(1). That is, it
1137           exits with 1 if there were differences and 0 means no differences.
1138
1139       --quiet
1140           Disable all output of the program. Implies --exit-code.
1141
1142       --ext-diff
1143           Allow an external diff helper to be executed. If you set an
1144           external diff driver with gitattributes(5), you need to use this
1145           option with git-log(1) and friends.
1146
1147       --no-ext-diff
1148           Disallow external diff drivers.
1149
1150       --ignore-submodules[=<when>]
1151           Ignore changes to submodules in the diff generation. <when> can be
1152           either "none", "untracked", "dirty" or "all", which is the default
1153           Using "none" will consider the submodule modified when it either
1154           contains untracked or modified files or its HEAD differs from the
1155           commit recorded in the superproject and can be used to override any
1156           settings of the ignore option in git-config(1) or gitmodules(5).
1157           When "untracked" is used submodules are not considered dirty when
1158           they only contain untracked content (but they are still scanned for
1159           modified content). Using "dirty" ignores all changes to the work
1160           tree of submodules, only changes to the commits stored in the
1161           superproject are shown (this was the behavior until 1.7.0). Using
1162           "all" hides all changes to submodules.
1163
1164       --src-prefix=<prefix>
1165           Show the given source prefix instead of "a/".
1166
1167       --dst-prefix=<prefix>
1168           Show the given destination prefix instead of "b/".
1169
1170       --no-prefix
1171           Do not show any source or destination prefix.
1172
1173       For more detailed explanation on these common options, see also
1174       gitdiffcore(7).
1175

GENERATING PATCHES WITH -P

1177       When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
1178       with a -p option, "git diff" without the --raw option, or "git log"
1179       with the "-p" option, they do not produce the output described above;
1180       instead they produce a patch file. You can customize the creation of
1181       such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS
1182       environment variables.
1183
1184       What the -p option produces is slightly different from the traditional
1185       diff format:
1186
1187        1. It is preceded with a "git diff" header that looks like this:
1188
1189               diff --git a/file1 b/file2
1190
1191           The a/ and b/ filenames are the same unless rename/copy is
1192           involved. Especially, even for a creation or a deletion, /dev/null
1193           is not used in place of the a/ or b/ filenames.
1194
1195           When rename/copy is involved, file1 and file2 show the name of the
1196           source file of the rename/copy and the name of the file that
1197           rename/copy produces, respectively.
1198
1199        2. It is followed by one or more extended header lines:
1200
1201               old mode <mode>
1202               new mode <mode>
1203               deleted file mode <mode>
1204               new file mode <mode>
1205               copy from <path>
1206               copy to <path>
1207               rename from <path>
1208               rename to <path>
1209               similarity index <number>
1210               dissimilarity index <number>
1211               index <hash>..<hash> <mode>
1212
1213           File modes are printed as 6-digit octal numbers including the file
1214           type and file permission bits.
1215
1216           Path names in extended headers do not include the a/ and b/
1217           prefixes.
1218
1219           The similarity index is the percentage of unchanged lines, and the
1220           dissimilarity index is the percentage of changed lines. It is a
1221           rounded down integer, followed by a percent sign. The similarity
1222           index value of 100% is thus reserved for two equal files, while
1223           100% dissimilarity means that no line from the old file made it
1224           into the new one.
1225
1226           The index line includes the SHA-1 checksum before and after the
1227           change. The <mode> is included if the file mode does not change;
1228           otherwise, separate lines indicate the old and the new mode.
1229
1230        3. TAB, LF, double quote and backslash characters in pathnames are
1231           represented as \t, \n, \" and \\, respectively. If there is need
1232           for such substitution then the whole pathname is put in double
1233           quotes.
1234
1235        4. All the file1 files in the output refer to files before the commit,
1236           and all the file2 files refer to files after the commit. It is
1237           incorrect to apply each change to each file sequentially. For
1238           example, this patch will swap a and b:
1239
1240               diff --git a/a b/b
1241               rename from a
1242               rename to b
1243               diff --git a/b b/a
1244               rename from b
1245               rename to a
1246

COMBINED DIFF FORMAT

1248       Any diff-generating command can take the ‘-c` or --cc option to produce
1249       a combined diff when showing a merge. This is the default format when
1250       showing merges with git-diff(1) or git-show(1). Note also that you can
1251       give the `-m’ option to any of these commands to force generation of
1252       diffs with individual parents of a merge.
1253
1254       A combined diff format looks like this:
1255
1256           diff --combined describe.c
1257           index fabadb8,cc95eb0..4866510
1258           --- a/describe.c
1259           +++ b/describe.c
1260           @@@ -98,20 -98,12 +98,20 @@@
1261                   return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
1262             }
1263
1264           - static void describe(char *arg)
1265            -static void describe(struct commit *cmit, int last_one)
1266           ++static void describe(char *arg, int last_one)
1267             {
1268            +      unsigned char sha1[20];
1269            +      struct commit *cmit;
1270                   struct commit_list *list;
1271                   static int initialized = 0;
1272                   struct commit_name *n;
1273
1274            +      if (get_sha1(arg, sha1) < 0)
1275            +              usage(describe_usage);
1276            +      cmit = lookup_commit_reference(sha1);
1277            +      if (!cmit)
1278            +              usage(describe_usage);
1279            +
1280                   if (!initialized) {
1281                           initialized = 1;
1282                           for_each_ref(get_name);
1283
1284
1285
1286        1. It is preceded with a "git diff" header, that looks like this (when
1287           -c option is used):
1288
1289               diff --combined file
1290
1291           or like this (when --cc option is used):
1292
1293               diff --cc file
1294
1295        2. It is followed by one or more extended header lines (this example
1296           shows a merge with two parents):
1297
1298               index <hash>,<hash>..<hash>
1299               mode <mode>,<mode>..<mode>
1300               new file mode <mode>
1301               deleted file mode <mode>,<mode>
1302
1303           The mode <mode>,<mode>..<mode> line appears only if at least one of
1304           the <mode> is different from the rest. Extended headers with
1305           information about detected contents movement (renames and copying
1306           detection) are designed to work with diff of two <tree-ish> and are
1307           not used by combined diff format.
1308
1309        3. It is followed by two-line from-file/to-file header
1310
1311               --- a/file
1312               +++ b/file
1313
1314           Similar to two-line header for traditional unified diff format,
1315           /dev/null is used to signal created or deleted files.
1316
1317        4. Chunk header format is modified to prevent people from accidentally
1318           feeding it to patch -p1. Combined diff format was created for
1319           review of merge commit changes, and was not meant for apply. The
1320           change is similar to the change in the extended index header:
1321
1322               @@@ <from-file-range> <from-file-range> <to-file-range> @@@
1323
1324           There are (number of parents + 1) @ characters in the chunk header
1325           for combined diff format.
1326
1327       Unlike the traditional unified diff format, which shows two files A and
1328       B with a single column that has - (minus — appears in A but removed in
1329       B), + (plus — missing in A but added to B), or " " (space — unchanged)
1330       prefix, this format compares two or more files file1, file2,... with
1331       one file X, and shows how X differs from each of fileN. One column for
1332       each of fileN is prepended to the output line to note how X’s line is
1333       different from it.
1334
1335       A - character in the column N means that the line appears in fileN but
1336       it does not appear in the result. A + character in the column N means
1337       that the line appears in the result, and fileN does not have that line
1338       (in other words, the line was added, from the point of view of that
1339       parent).
1340
1341       In the above example output, the function signature was changed from
1342       both files (hence two - removals from both file1 and file2, plus ++ to
1343       mean one line that was added does not appear in either file1 nor
1344       file2). Also eight other lines are the same from file1 but do not
1345       appear in file2 (hence prefixed with +).
1346
1347       When shown by git diff-tree -c, it compares the parents of a merge
1348       commit with the merge result (i.e. file1..fileN are the parents). When
1349       shown by git diff-files -c, it compares the two unresolved merge
1350       parents with the working tree file (i.e. file1 is stage 2 aka "our
1351       version", file2 is stage 3 aka "their version").
1352

EXAMPLES

1354       git log --no-merges
1355           Show the whole commit history, but skip any merges
1356
1357       git log v2.6.12.. include/scsi drivers/scsi
1358           Show all commits since version v2.6.12 that changed any file in the
1359           include/scsi or drivers/scsi subdirectories
1360
1361       git log --since="2 weeks ago" -- gitk
1362           Show the changes during the last two weeks to the file gitk. The
1363           "--" is necessary to avoid confusion with the branch named gitk
1364
1365       git log --name-status release..test
1366           Show the commits that are in the "test" branch but not yet in the
1367           "release" branch, along with the list of paths each commit
1368           modifies.
1369
1370       git log --follow builtin-rev-list.c
1371           Shows the commits that changed builtin-rev-list.c, including those
1372           commits that occurred before the file was given its present name.
1373
1374       git log --branches --not --remotes=origin
1375           Shows all commits that are in any of local branches but not in any
1376           of remote-tracking branches for origin (what you have that origin
1377           doesn’t).
1378
1379       git log master --not --remotes=*/master
1380           Shows all commits that are in local master but not in any remote
1381           repository master branches.
1382
1383       git log -p -m --first-parent
1384           Shows the history including change diffs, but only from the "main
1385           branch" perspective, skipping commits that come from merged
1386           branches, and showing full diffs of changes introduced by the
1387           merges. This makes sense only when following a strict policy of
1388           merging all topic branches when staying on a single integration
1389           branch.
1390

DISCUSSION

1392       At the core level, git is character encoding agnostic.
1393
1394       ·   The pathnames recorded in the index and in the tree objects are
1395           treated as uninterpreted sequences of non-NUL bytes. What
1396           readdir(2) returns are what are recorded and compared with the data
1397           git keeps track of, which in turn are expected to be what lstat(2)
1398           and creat(2) accepts. There is no such thing as pathname encoding
1399           translation.
1400
1401       ·   The contents of the blob objects are uninterpreted sequences of
1402           bytes. There is no encoding translation at the core level.
1403
1404       ·   The commit log messages are uninterpreted sequences of non-NUL
1405           bytes.
1406
1407       Although we encourage that the commit log messages are encoded in
1408       UTF-8, both the core and git Porcelain are designed not to force UTF-8
1409       on projects. If all participants of a particular project find it more
1410       convenient to use legacy encodings, git does not forbid it. However,
1411       there are a few things to keep in mind.
1412
1413        1.  git commit and git commit-tree issues a warning if the commit log
1414           message given to it does not look like a valid UTF-8 string, unless
1415           you explicitly say your project uses a legacy encoding. The way to
1416           say this is to have i18n.commitencoding in .git/config file, like
1417           this:
1418
1419               [i18n]
1420                       commitencoding = ISO-8859-1
1421
1422           Commit objects created with the above setting record the value of
1423           i18n.commitencoding in its encoding header. This is to help other
1424           people who look at them later. Lack of this header implies that the
1425           commit log message is encoded in UTF-8.
1426
1427        2.  git log, git show, git blame and friends look at the encoding
1428           header of a commit object, and try to re-code the log message into
1429           UTF-8 unless otherwise specified. You can specify the desired
1430           output encoding with i18n.logoutputencoding in .git/config file,
1431           like this:
1432
1433               [i18n]
1434                       logoutputencoding = ISO-8859-1
1435
1436           If you do not have this configuration variable, the value of
1437           i18n.commitencoding is used instead.
1438
1439       Note that we deliberately chose not to re-code the commit log message
1440       when a commit is made to force UTF-8 at the commit object level,
1441       because re-coding to UTF-8 is not necessarily a reversible operation.
1442

CONFIGURATION

1444       See git-config(1) for core variables and git-diff(1) for settings
1445       related to diff generation.
1446
1447       format.pretty
1448           Default for the --format option. (See "PRETTY FORMATS" above.)
1449           Defaults to "medium".
1450
1451       i18n.logOutputEncoding
1452           Encoding to use when displaying logs. (See "Discussion", above.)
1453           Defaults to the value of i18n.commitEncoding if set, UTF-8
1454           otherwise.
1455
1456       log.date
1457           Default format for human-readable dates. (Compare the --date
1458           option.) Defaults to "default", which means to write dates like Sat
1459           May 8 19:35:34 2010 -0500.
1460
1461       log.showroot
1462           If false, git log and related commands will not treat the initial
1463           commit as a big creation event. Any root commits in git log -p
1464           output would be shown without a diff attached. The default is true.
1465
1466       mailmap.file
1467           See git-shortlog(1).
1468
1469       notes.displayRef
1470           Which refs, in addition to the default set by core.notesRef or
1471           GIT_NOTES_REF, to read notes from when showing commit messages with
1472           the log family of commands. See git-notes(1).
1473
1474           May be an unabbreviated ref name or a glob and may be specified
1475           multiple times. A warning will be issued for refs that do not
1476           exist, but a glob that does not match any refs is silently ignored.
1477
1478           This setting can be disabled by the --no-standard-notes option,
1479           overridden by the GIT_NOTES_DISPLAY_REF environment variable, and
1480           supplemented by the --show-notes option.
1481

AUTHOR

1483       Written by Linus Torvalds <torvalds@osdl.org[1]>
1484

DOCUMENTATION

1486       Documentation by David Greaves, Junio C Hamano and the git-list
1487       <git@vger.kernel.org[2]>.
1488

GIT

1490       Part of the git(1) suite
1491

NOTES

1493        1. torvalds@osdl.org
1494           mailto:torvalds@osdl.org
1495
1496        2. git@vger.kernel.org
1497           mailto:git@vger.kernel.org
1498
1499
1500
1501Git 1.7.4.4                       04/11/2011                        GIT-LOG(1)
Impressum