git-log.txt,rev-list-options.txt: -n/--max-count is commit limiting
[git/git.git] / Documentation / git-log.txt
CommitLineData
215a7ad1
JH
1git-log(1)
2==========
3f971fc4
JH
3
4NAME
5----
215a7ad1 6git-log - Show commit logs
3f971fc4
JH
7
8
9SYNOPSIS
10--------
b1524ee0 11'git log' [<options>] [<since>..<until>] [[\--] <path>...]
3f971fc4
JH
12
13DESCRIPTION
14-----------
e51c3b50
JH
15Shows the commit logs.
16
0b444cdb 17The command takes options applicable to the 'git rev-list'
e51c3b50 18command to control what is shown and how, and options applicable to
0b444cdb 19the 'git diff-*' commands to control how the changes
e51c3b50
JH
20each commit introduces are shown.
21
3f971fc4
JH
22
23OPTIONS
24-------
5d1faf87 25
adb7ba6b 26-<n>::
3f971fc4 27 Limits the number of commits to show.
190767f6 28 Note that this is a commit limiting option, see below.
3f971fc4
JH
29
30<since>..<until>::
99e09cce
JH
31 Show only commits between the named two commits. When
32 either <since> or <until> is omitted, it defaults to
33 `HEAD`, i.e. the tip of the current branch.
41a5564e 34 For a more complete list of ways to spell <since>
9d83e382 35 and <until>, see linkgit:gitrevisions[7].
3f971fc4 36
4ded6916
EB
37--follow::
38 Continue listing the history of a file beyond renames
39 (works only for a single file).
40
8a3d203b
JH
41--no-decorate::
42--decorate[=short|full|no]::
33e7018c
LH
43 Print out the ref names of any commits that are shown. If 'short' is
44 specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and
45 'refs/remotes/' will not be printed. If 'full' is specified, the
46 full ref name (including prefix) will be printed. The default option
47 is 'short'.
56822cc9 48
30c4d7a7
NS
49--source::
50 Print out the ref name given on the command line by which each
51 commit was reached.
52
2e88c266 53--full-diff::
f448e24e 54 Without this flag, "git log -p <path>..." shows commits that
2e88c266
JN
55 touch the specified paths, and diffs about the same specified
56 paths. With this, the full diff is shown for commits that touch
f448e24e 57 the specified paths; this means that "<path>..." limits only
2e88c266 58 commits, and doesn't limit diff for those commits.
b1c7946d
MG
59+
60Note that this affects all diff-based output types, e.g. those
61produced by --stat etc.
2e88c266 62
9fa3465d
MC
63--log-size::
64 Before the log message print out its size in bytes. Intended
65 mainly for porcelain tools consumption. If git is unable to
66 produce a valid value size is set to zero.
67 Note that only message is considered, if also a diff is shown
68 its size is not included.
69
b1524ee0 70[\--] <path>...::
71 Show only commits that affect any of the specified paths. To
72 prevent confusion with options and branch names, paths may need
73 to be prefixed with "\-- " to separate them from options or
74 refnames.
e51c3b50 75
4ded6916
EB
76Common diff options
77~~~~~~~~~~~~~~~~~~~
78
79:git-log: 1
80include::diff-options.txt[]
3f971fc4 81
fdcf39e5
MV
82include::rev-list-options.txt[]
83
331b51d2
JN
84include::pretty-formats.txt[]
85
272bd3cf 86include::diff-generate-patch.txt[]
331b51d2 87
bd663611
LT
88Examples
89--------
90git log --no-merges::
91
92 Show the whole commit history, but skip any merges
93
94git log v2.6.12.. include/scsi drivers/scsi::
95
96 Show all commits since version 'v2.6.12' that changed any file
97 in the include/scsi or drivers/scsi subdirectories
98
e994004f 99git log --since="2 weeks ago" \-- gitk::
bd663611
LT
100
101 Show the changes during the last two weeks to the file 'gitk'.
102 The "--" is necessary to avoid confusion with the *branch* named
103 'gitk'
104
170c0438 105git log --name-status release..test::
e51c3b50
JH
106
107 Show the commits that are in the "test" branch but not yet
108 in the "release" branch, along with the list of paths
109 each commit modifies.
bd663611 110
4f50f6a9
SW
111git log --follow builtin-rev-list.c::
112
113 Shows the commits that changed builtin-rev-list.c, including
114 those commits that occurred before the file was given its
115 present name.
116
b09fe971 117git log --branches --not --remotes=origin::
d08bae7e
IL
118
119 Shows all commits that are in any of local branches but not in
0e615b25 120 any of remote-tracking branches for 'origin' (what you have that
d08bae7e
IL
121 origin doesn't).
122
b09fe971 123git log master --not --remotes=*/master::
d08bae7e
IL
124
125 Shows all commits that are in local master but not in any remote
126 repository master branches.
127
88d9d45d
PB
128git log -p -m --first-parent::
129
130 Shows the history including change diffs, but only from the
131 "main branch" perspective, skipping commits that come from merged
132 branches, and showing full diffs of changes introduced by the merges.
133 This makes sense only when following a strict policy of merging all
134 topic branches when staying on a single integration branch.
135
136
5dc7bcc2
JH
137Discussion
138----------
139
140include::i18n.txt[]
141
59893a88
JN
142Configuration
143-------------
144
145See linkgit:git-config[1] for core variables and linkgit:git-diff[1]
146for settings related to diff generation.
147
148format.pretty::
149 Default for the `--format` option. (See "PRETTY FORMATS" above.)
150 Defaults to "medium".
151
152i18n.logOutputEncoding::
153 Encoding to use when displaying logs. (See "Discussion", above.)
154 Defaults to the value of `i18n.commitEncoding` if set, UTF-8
155 otherwise.
156
157log.date::
158 Default format for human-readable dates. (Compare the
159 `--date` option.) Defaults to "default", which means to write
160 dates like `Sat May 8 19:35:34 2010 -0500`.
161
162log.showroot::
163 If `false`, 'git log' and related commands will not treat the
164 initial commit as a big creation event. Any root commits in
165 `git log -p` output would be shown without a diff attached.
166 The default is `true`.
167
168mailmap.file::
169 See linkgit:git-shortlog[1].
170
171notes.displayRef::
172 Which refs, in addition to the default set by `core.notesRef`
173 or 'GIT_NOTES_REF', to read notes from when showing commit
174 messages with the 'log' family of commands. See
175 linkgit:git-notes[1].
176+
177May be an unabbreviated ref name or a glob and may be specified
178multiple times. A warning will be issued for refs that do not exist,
179but a glob that does not match any refs is silently ignored.
180+
181This setting can be disabled by the `--no-standard-notes` option,
182overridden by the 'GIT_NOTES_DISPLAY_REF' environment variable,
183and supplemented by the `--show-notes` option.
5dc7bcc2 184
3f971fc4
JH
185Author
186------
187Written by Linus Torvalds <torvalds@osdl.org>
188
189Documentation
190--------------
191Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
192
193GIT
194---
9e1f0a85 195Part of the linkgit:git[1] suite