blob: 90761f169444c165f0e94ebc3b7731cd8d85d3f0 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231git-log(1)
2==========
3
4NAME
5----
6git-log - Show commit logs
7
8
9SYNOPSIS
10--------
Junio C Hamano15567bc2011-07-23 00:51:5911[verse]
Junio C Hamanoccb82522018-05-08 07:52:0912'git log' [<options>] [<revision range>] [[--] <path>...]
Junio C Hamano1a4e8412005-12-27 08:17:2313
14DESCRIPTION
15-----------
Junio C Hamanoba7c8d82006-04-15 06:17:4216Shows the commit logs.
Junio C Hamano1a4e8412005-12-27 08:17:2317
Junio C Hamanob73af6c2013-12-03 22:07:1118The command takes options applicable to the `git rev-list`
Junio C Hamanoba7c8d82006-04-15 06:17:4219command to control what is shown and how, and options applicable to
Junio C Hamanob73af6c2013-12-03 22:07:1120the `git diff-*` commands to control how the changes
Junio C Hamanoba7c8d82006-04-15 06:17:4221each commit introduces are shown.
22
Junio C Hamano1a4e8412005-12-27 08:17:2323
24OPTIONS
25-------
Junio C Hamanoa340aaa2006-11-23 02:47:3326
Junio C Hamano78e3a782010-07-15 22:24:4527--follow::
28Continue listing the history of a file beyond renames
29(works only for a single file).
Junio C Hamano1a4e8412005-12-27 08:17:2330
Junio C Hamanocb39aea2010-05-09 07:24:4831--no-decorate::
Junio C Hamano37cf4082016-05-30 01:22:1432--decorate[=short|full|auto|no]::
Junio C Hamanoc276ec72009-08-26 01:35:2233Print out the ref names of any commits that are shown. If 'short' is
34specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and
35'refs/remotes/' will not be printed. If 'full' is specified, the
Junio C Hamano37cf4082016-05-30 01:22:1436full ref name (including prefix) will be printed. If 'auto' is
37specified, then if the output is going to a terminal, the ref names
38are shown as if 'short' were given, otherwise no ref names are
39shown. The default option is 'short'.
Junio C Hamanoee695f22007-06-21 00:35:3640
Junio C Hamano371470a2017-12-13 22:26:4041--decorate-refs=<pattern>::
42--decorate-refs-exclude=<pattern>::
43If no `--decorate-refs` is given, pretend as if all refs were
44included. For each candidate, do not use it for decoration if it
45matches any patterns given to `--decorate-refs-exclude` or if it
46doesn't match any of the patterns given to `--decorate-refs`.
47
Junio C Hamano28363492008-11-14 08:26:3148--source::
49Print out the ref name given on the command line by which each
50commit was reached.
51
Junio C Hamanoce836cc2013-01-21 02:01:5352--use-mailmap::
53Use mailmap file to map author and committer names and email
Junio C Hamanob73af6c2013-12-03 22:07:1154addresses to canonical real names and email addresses. See
Junio C Hamanoce836cc2013-01-21 02:01:5355linkgit:git-shortlog[1].
56
Junio C Hamanoee695f22007-06-21 00:35:3657--full-diff::
Junio C Hamanob73af6c2013-12-03 22:07:1158Without this flag, `git log -p <path>...` shows commits that
Junio C Hamanoee695f22007-06-21 00:35:3659touch the specified paths, and diffs about the same specified
60paths. With this, the full diff is shown for commits that touch
Junio C Hamano9e395072008-07-31 22:11:2161the specified paths; this means that "<path>..." limits only
Junio C Hamanoee695f22007-06-21 00:35:3662commits, and doesn't limit diff for those commits.
Junio C Hamanoe85e36f2010-08-10 05:30:1463+
64Note that this affects all diff-based output types, e.g. those
Junio C Hamanob73af6c2013-12-03 22:07:1165produced by `--stat`, etc.
Junio C Hamanoea5dae62007-05-10 23:25:0866
Junio C Hamano024b6c62007-08-14 09:43:0867--log-size::
Junio C Hamanob73af6c2013-12-03 22:07:1168Include a line ``log size <number>'' in the output for each commit,
69where <number> is the length of that commit's message in bytes.
70Intended to speed up tools that read log messages from `git log`
71output by allowing them to allocate space in advance.
Junio C Hamano024b6c62007-08-14 09:43:0872
Junio C Hamano8eac2682013-09-09 22:35:2073-L <start>,<end>:<file>::
Junio C Hamanodd5004a2015-05-06 19:33:3274-L :<funcname>:<file>::
Junio C Hamano7e590a12013-06-02 23:46:5275Trace the evolution of the line range given by "<start>,<end>"
Junio C Hamanodd5004a2015-05-06 19:33:3276(or the function name regex <funcname>) within the <file>. You may
Junio C Hamano7e590a12013-06-02 23:46:5277not give any pathspec limiters. This is currently limited to
78a walk starting from a single revision, i.e., you may only
79give zero or one positive revision arguments.
80You can specify this option more than once.
81+
Junio C Hamano7e590a12013-06-02 23:46:5282include::line-range-format.txt[]
83
Junio C Hamanof26c77e2013-04-27 00:06:0484<revision range>::
85Show only commits in the specified revision range. When no
86<revision range> is specified, it defaults to `HEAD` (i.e. the
87whole history leading to the current commit). `origin..HEAD`
88specifies all the commits reachable from the current commit
89(i.e. `HEAD`), but not from `origin`. For a complete list of
Junio C Hamanob73af6c2013-12-03 22:07:1190ways to spell <revision range>, see the 'Specifying Ranges'
Junio C Hamanof26c77e2013-04-27 00:06:0491section of linkgit:gitrevisions[7].
92
Junio C Hamanoccb82522018-05-08 07:52:0993[--] <path>...::
Junio C Hamano5723afa2011-08-31 00:49:2394Show only commits that are enough to explain how the files
Junio C Hamanob73af6c2013-12-03 22:07:1195that match the specified paths came to be. See 'History
96Simplification' below for details and other simplification
Junio C Hamano5723afa2011-08-31 00:49:2397modes.
98+
Junio C Hamanoccb82522018-05-08 07:52:0999Paths may need to be prefixed with `--` to separate them from
Junio C Hamanof26c77e2013-04-27 00:06:04100options or the revision range, when confusion arises.
Junio C Hamanoba7c8d82006-04-15 06:17:42101
Junio C Hamanob0e02952008-01-19 08:02:00102include::rev-list-options.txt[]
103
Junio C Hamano0430e3a2007-05-15 03:13:17104include::pretty-formats.txt[]
105
Junio C Hamano58f587a2013-07-22 19:20:59106COMMON DIFF OPTIONS
Junio C Hamanod2c978f2011-03-20 19:42:22107-------------------
108
109:git-log: 1
110include::diff-options.txt[]
111
Junio C Hamano00b8b632007-12-07 09:50:49112include::diff-generate-patch.txt[]
Junio C Hamano0430e3a2007-05-15 03:13:17113
Junio C Hamano58f587a2013-07-22 19:20:59114EXAMPLES
Junio C Hamano1a4e8412005-12-27 08:17:23115--------
Junio C Hamano16ebcd02011-08-05 00:05:45116`git log --no-merges`::
Junio C Hamano1a4e8412005-12-27 08:17:23117
118Show the whole commit history, but skip any merges
119
Junio C Hamano16ebcd02011-08-05 00:05:45120`git log v2.6.12.. include/scsi drivers/scsi`::
Junio C Hamano1a4e8412005-12-27 08:17:23121
122Show all commits since version 'v2.6.12' that changed any file
Junio C Hamanob73af6c2013-12-03 22:07:11123in the `include/scsi` or `drivers/scsi` subdirectories
Junio C Hamano1a4e8412005-12-27 08:17:23124
Junio C Hamanob76a6862012-05-02 22:02:46125`git log --since="2 weeks ago" -- gitk`::
Junio C Hamano1a4e8412005-12-27 08:17:23126
127Show the changes during the last two weeks to the file 'gitk'.
Junio C Hamanoccb82522018-05-08 07:52:09128The `--` is necessary to avoid confusion with the *branch* named
Junio C Hamano1a4e8412005-12-27 08:17:23129'gitk'
130
Junio C Hamano16ebcd02011-08-05 00:05:45131`git log --name-status release..test`::
Junio C Hamanoba7c8d82006-04-15 06:17:42132
133Show the commits that are in the "test" branch but not yet
134in the "release" branch, along with the list of paths
135each commit modifies.
Junio C Hamano1a4e8412005-12-27 08:17:23136
Junio C Hamano3a3357e2013-06-26 23:20:56137`git log --follow builtin/rev-list.c`::
Junio C Hamano235d53f2007-07-13 00:25:15138
Junio C Hamanob73af6c2013-12-03 22:07:11139Shows the commits that changed `builtin/rev-list.c`, including
Junio C Hamano235d53f2007-07-13 00:25:15140those commits that occurred before the file was given its
141present name.
142
Junio C Hamano16ebcd02011-08-05 00:05:45143`git log --branches --not --remotes=origin`::
Junio C Hamano57827fb2010-01-23 03:02:50144
145Shows all commits that are in any of local branches but not in
Junio C Hamano97bcb482010-11-25 03:16:07146any of remote-tracking branches for 'origin' (what you have that
Junio C Hamano57827fb2010-01-23 03:02:50147origin doesn't).
148
Junio C Hamano16ebcd02011-08-05 00:05:45149`git log master --not --remotes=*/master`::
Junio C Hamano57827fb2010-01-23 03:02:50150
151Shows all commits that are in local master but not in any remote
152repository master branches.
153
Junio C Hamano16ebcd02011-08-05 00:05:45154`git log -p -m --first-parent`::
Junio C Hamano31667362010-03-25 00:38:53155
156Shows the history including change diffs, but only from the
Junio C Hamanob73af6c2013-12-03 22:07:11157``main branch'' perspective, skipping commits that come from merged
Junio C Hamano31667362010-03-25 00:38:53158branches, and showing full diffs of changes introduced by the merges.
159This makes sense only when following a strict policy of merging all
160topic branches when staying on a single integration branch.
161
Junio C Hamano24b68352013-07-18 02:15:20162`git log -L '/int main/',/^}/:main.c`::
Junio C Hamano7e590a12013-06-02 23:46:52163
Junio C Hamanob73af6c2013-12-03 22:07:11164Shows how the function `main()` in the file `main.c` evolved
Junio C Hamano7e590a12013-06-02 23:46:52165over time.
166
Junio C Hamano693e7092012-09-12 22:56:53167`git log -3`::
Junio C Hamanob73af6c2013-12-03 22:07:11168
Junio C Hamano693e7092012-09-12 22:56:53169Limits the number of commits to show to 3.
Junio C Hamano31667362010-03-25 00:38:53170
Junio C Hamano58f587a2013-07-22 19:20:59171DISCUSSION
Junio C Hamano775a0f42006-12-31 01:19:14172----------
173
174include::i18n.txt[]
175
Junio C Hamano58f587a2013-07-22 19:20:59176CONFIGURATION
Junio C Hamanoa574a092010-06-13 19:57:10177-------------
178
179See linkgit:git-config[1] for core variables and linkgit:git-diff[1]
180for settings related to diff generation.
181
182format.pretty::
Junio C Hamanob73af6c2013-12-03 22:07:11183Default for the `--format` option. (See 'Pretty Formats' above.)
184Defaults to `medium`.
Junio C Hamanoa574a092010-06-13 19:57:10185
186i18n.logOutputEncoding::
Junio C Hamanob73af6c2013-12-03 22:07:11187Encoding to use when displaying logs. (See 'Discussion' above.)
188Defaults to the value of `i18n.commitEncoding` if set, and UTF-8
Junio C Hamanoa574a092010-06-13 19:57:10189otherwise.
190
191log.date::
192Default format for human-readable dates. (Compare the
193`--date` option.) Defaults to "default", which means to write
194dates like `Sat May 8 19:35:34 2010 -0500`.
195
Junio C Hamanod7ed4042015-08-03 19:43:00196log.follow::
Junio C Hamanob0a1e832015-10-15 23:08:31197If `true`, `git log` will act as if the `--follow` option was used when
198a single <path> is given. This has the same limitations as `--follow`,
199i.e. it cannot be used to follow multiple files and does not work well
200on non-linear history.
Junio C Hamanod7ed4042015-08-03 19:43:00201
Junio C Hamano322c6242015-03-23 21:32:46202log.showRoot::
Junio C Hamanob73af6c2013-12-03 22:07:11203If `false`, `git log` and related commands will not treat the
Junio C Hamanoa574a092010-06-13 19:57:10204initial commit as a big creation event. Any root commits in
205`git log -p` output would be shown without a diff attached.
206The default is `true`.
207
Junio C Hamano48931e22016-07-11 20:08:47208log.showSignature::
209If `true`, `git log` and related commands will act as if the
210`--show-signature` option was passed to them.
211
Junio C Hamanoabad6da2013-01-06 09:06:32212mailmap.*::
Junio C Hamanoa574a092010-06-13 19:57:10213See linkgit:git-shortlog[1].
214
215notes.displayRef::
216Which refs, in addition to the default set by `core.notesRef`
Junio C Hamano042f2142016-06-27 18:05:05217or `GIT_NOTES_REF`, to read notes from when showing commit
Junio C Hamanob73af6c2013-12-03 22:07:11218messages with the `log` family of commands. See
Junio C Hamanoa574a092010-06-13 19:57:10219linkgit:git-notes[1].
220+
221May be an unabbreviated ref name or a glob and may be specified
222multiple times. A warning will be issued for refs that do not exist,
223but a glob that does not match any refs is silently ignored.
224+
Junio C Hamano60033462011-05-03 00:48:43225This setting can be disabled by the `--no-notes` option,
Junio C Hamano042f2142016-06-27 18:05:05226overridden by the `GIT_NOTES_DISPLAY_REF` environment variable,
Junio C Hamano60033462011-05-03 00:48:43227and overridden by the `--notes=<ref>` option.
Junio C Hamano775a0f42006-12-31 01:19:14228
Junio C Hamano1a4e8412005-12-27 08:17:23229GIT
230---
Junio C Hamanof7c042d2008-06-06 22:50:53231Part of the linkgit:git[1] suite