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