'\" t
.\"     Title: git-annotate
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
.\"      Date: 2025-10-05
.\"    Manual: Git Manual
.\"    Source: Git 2.51.0.433.g45547b60ac
.\"  Language: English
.\"
.TH "GIT\-ANNOTATE" "1" "2025-10-05" "Git 2\&.51\&.0\&.433\&.g45547b" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-annotate \- Annotate file lines with commit information
.SH "SYNOPSIS"
.sp
.nf
\fIgit annotate\fR [<options>] [<rev\-opts>] [<rev>] [\-\-] <file>
.fi
.SH "DESCRIPTION"
.sp
Annotates each line in the given file with information from the commit which introduced the line\&. Optionally annotates from a given revision\&.
.sp
The only difference between this command and \fBgit-blame\fR(1) is that they use slightly different output formats, and this command exists only for backward compatibility to support existing scripts, and provide a more familiar command name for people coming from other SCM systems\&.
.SH "OPTIONS"
.PP
\-b
.RS 4
Show blank SHA\-1 for boundary commits\&. This can also be controlled via the
\fBblame\&.blankBoundary\fR
config option\&.
.RE
.PP
\-\-root
.RS 4
Do not treat root commits as boundaries\&. This can also be controlled via the
\fBblame\&.showRoot\fR
config option\&.
.RE
.PP
\-\-show\-stats
.RS 4
Include additional statistics at the end of blame output\&.
.RE
.PP
\-L <start>,<end>, \-L :<funcname>
.RS 4
Annotate only the line range given by
\fI<start>,<end>\fR, or by the function name regex
\fI<funcname>\fR\&. May be specified multiple times\&. Overlapping ranges are allowed\&.
.sp
\fI<start>\fR
and
\fI<end>\fR
are optional\&.
\fB\-L\fR
\fI<start>\fR
or
\fB\-L\fR
\fI<start>\fR\fB,\fR
spans from
\fI<start>\fR
to end of file\&.
\fB\-L\fR
\fB,\fR\fI<end>\fR
spans from start of file to
\fI<end>\fR\&.
.sp
\fI<start>\fR
and
\fI<end>\fR
can take one of these forms:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fI<number>\fR
.sp
If
\fI<start>\fR
or
\fI<end>\fR
is a number, it specifies an absolute line number (lines count from 1)\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB/\fR\fI<regex>\fR\fB/\fR
.sp
This form will use the first line matching the given POSIX
\fI<regex>\fR\&. If
\fI<start>\fR
is a regex, it will search from the end of the previous
\fB\-L\fR
range, if any, otherwise from the start of file\&. If
\fI<start>\fR
is
\fB^/\fR\fI<regex>\fR\fB/\fR, it will search from the start of file\&. If
\fI<end>\fR
is a regex, it will search starting at the line given by
\fI<start>\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fB+\fR\fI<offset>\fR
or
\fB\-\fR\fI<offset>\fR
.sp
This is only valid for
\fI<end>\fR
and will specify a number of lines before or after the line given by
\fI<start>\fR\&.
.RE
.sp
If
\fB:\fR\fI<funcname>\fR
is given in place of
\fI<start>\fR
and
\fI<end>\fR, it is a regular expression that denotes the range from the first funcname line that matches
\fI<funcname>\fR, up to the next funcname line\&.
\fB:\fR\fI<funcname>\fR
searches from the end of the previous
\fB\-L\fR
range, if any, otherwise from the start of file\&.
\fB^:\fR\fI<funcname>\fR
searches from the start of file\&. The function names are determined in the same way as
\fBgit\fR
\fBdiff\fR
works out patch hunk headers (see
\fIDefining a custom hunk\-header\fR
in
\fBgitattributes\fR(5))\&.
.RE
.PP
\-l
.RS 4
Show long rev (Default: off)\&.
.RE
.PP
\-t
.RS 4
Show raw timestamp (Default: off)\&.
.RE
.PP
\-S <revs\-file>
.RS 4
Use revisions from revs\-file instead of calling
\fBgit-rev-list\fR(1)\&.
.RE
.PP
\-\-reverse <rev>\&.\&.<rev>
.RS 4
Walk history forward instead of backward\&. Instead of showing the revision in which a line appeared, this shows the last revision in which a line has existed\&. This requires a range of revision like START\&.\&.END where the path to blame exists in START\&.
\fBgit\fR
\fBblame\fR
\fB\-\-reverse\fR
\fBSTART\fR
is taken as
\fBgit\fR
\fBblame\fR
\fB\-\-reverse\fR
\fBSTART\fR\fB\&.\&.\fR\fBHEAD\fR
for convenience\&.
.RE
.PP
\-\-first\-parent
.RS 4
Follow only the first parent commit upon seeing a merge commit\&. This option can be used to determine when a line was introduced to a particular integration branch, rather than when it was introduced to the history overall\&.
.RE
.PP
\-p, \-\-porcelain
.RS 4
Show in a format designed for machine consumption\&.
.RE
.PP
\-\-line\-porcelain
.RS 4
Show the porcelain format, but output commit information for each line, not just the first time a commit is referenced\&. Implies \-\-porcelain\&.
.RE
.PP
\-\-incremental
.RS 4
Show the result incrementally in a format designed for machine consumption\&.
.RE
.PP
\-\-encoding=<encoding>
.RS 4
Specifies the encoding used to output author names and commit summaries\&. Setting it to
\fBnone\fR
makes blame output unconverted data\&. For more information see the discussion about encoding in the
\fBgit-log\fR(1)
manual page\&.
.RE
.PP
\-\-contents <file>
.RS 4
Annotate using the contents from the named file, starting from <rev> if it is specified, and HEAD otherwise\&. You may specify
\fI\-\fR
to make the command read from the standard input for the file contents\&.
.RE
.PP
\-\-date <format>
.RS 4
Specifies the format used to output dates\&. If \-\-date is not provided, the value of the blame\&.date config variable is used\&. If the blame\&.date config variable is also not set, the iso format is used\&. For supported values, see the discussion of the \-\-date option at
\fBgit-log\fR(1)\&.
.RE
.PP
\-\-progress, \-\-no\-progress
.RS 4
Progress status is reported on the standard error stream by default when it is attached to a terminal\&. This flag enables progress reporting even if not attached to a terminal\&. Can\(cqt use
\fB\-\-progress\fR
together with
\fB\-\-porcelain\fR
or
\fB\-\-incremental\fR\&.
.RE
.PP
\-M[<num>]
.RS 4
Detect moved or copied lines within a file\&. When a commit moves or copies a block of lines (e\&.g\&. the original file has A and then B, and the commit changes it to B and then A), the traditional
\fIblame\fR
algorithm notices only half of the movement and typically blames the lines that were moved up (i\&.e\&. B) to the parent and assigns blame to the lines that were moved down (i\&.e\&. A) to the child commit\&. With this option, both groups of lines are blamed on the parent by running extra passes of inspection\&.
.sp
<num> is optional but it is the lower bound on the number of alphanumeric characters that Git must detect as moving/copying within a file for it to associate those lines with the parent commit\&. The default value is 20\&.
.RE
.PP
\-C[<num>]
.RS 4
In addition to
\fB\-M\fR, detect lines moved or copied from other files that were modified in the same commit\&. This is useful when you reorganize your program and move code around across files\&. When this option is given twice, the command additionally looks for copies from other files in the commit that creates the file\&. When this option is given three times, the command additionally looks for copies from other files in any commit\&.
.sp
<num> is optional but it is the lower bound on the number of alphanumeric characters that Git must detect as moving/copying between files for it to associate those lines with the parent commit\&. And the default value is 40\&. If there are more than one
\fB\-C\fR
options given, the <num> argument of the last
\fB\-C\fR
will take effect\&.
.RE
.PP
\-\-ignore\-rev <rev>
.RS 4
Ignore changes made by the revision when assigning blame, as if the change never happened\&. Lines that were changed or added by an ignored commit will be blamed on the previous commit that changed that line or nearby lines\&. This option may be specified multiple times to ignore more than one revision\&. If the
\fBblame\&.markIgnoredLines\fR
config option is set, then lines that were changed by an ignored commit and attributed to another commit will be marked with a ? in the blame output\&. If the
\fBblame\&.markUnblamableLines\fR
config option is set, then those lines touched by an ignored commit that we could not attribute to another revision are marked with a
\fI*\fR\&. In the porcelain modes, we print
\fIignored\fR
and
\fIunblamable\fR
on a newline respectively\&.
.RE
.PP
\-\-ignore\-revs\-file <file>
.RS 4
Ignore revisions listed in
\fBfile\fR, which must be in the same format as an
\fBfsck\&.skipList\fR\&. This option may be repeated, and these files will be processed after any files specified with the
\fBblame\&.ignoreRevsFile\fR
config option\&. An empty file name, "", will clear the list of revs from previously processed files\&.
.RE
.PP
\-\-color\-lines
.RS 4
Color line annotations in the default format differently if they come from the same commit as the preceding line\&. This makes it easier to distinguish code blocks introduced by different commits\&. The color defaults to cyan and can be adjusted using the
\fBcolor\&.blame\&.repeatedLines\fR
config option\&.
.RE
.PP
\-\-color\-by\-age
.RS 4
Color line annotations depending on the age of the line in the default format\&. The
\fBcolor\&.blame\&.highlightRecent\fR
config option controls what color is used for each range of age\&.
.RE
.PP
\-h
.RS 4
Show help message\&.
.RE
.SH "SEE ALSO"
.sp
\fBgit-blame\fR(1)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
