-b::
	Show blank SHA-1 for boundary commits.  This can also
	be controlled via the `blame.blankboundary` config option.

--root::
	Do not treat root commits as boundaries.  This can also be
	controlled via the `blame.showRoot` config option.

--show-stats::
	Include additional statistics at the end of blame output.

-L <start>,<end>::
-L :<funcname>::
	Annotate only the given line range. May be specified multiple times.
	Overlapping ranges are allowed.
+
<start> and <end> are optional. ``-L <start>'' or ``-L <start>,'' spans from
<start> to end of file. ``-L ,<end>'' spans from start of file to <end>.
+
include::line-range-format.txt[]

-l::
	Show long rev (Default: off).

-t::
	Show raw timestamp (Default: off).

-S <revs-file>::
	Use revisions from revs-file instead of calling linkgit:git-rev-list[1].

--reverse::
	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.

-p::
--porcelain::
	Show in a format designed for machine consumption.

--line-porcelain::
	Show the porcelain format, but output commit information for
	each line, not just the first time a commit is referenced.
	Implies --porcelain.

--incremental::
	Show the result incrementally in a format designed for
	machine consumption.

--encoding=<encoding>::
	Specifies the encoding used to output author names
	and commit summaries. Setting it to `none` makes blame
	output unconverted data. For more information see the
	discussion about encoding in the linkgit:git-log[1]
	manual page.

--contents <file>::
	When <rev> is not specified, the command annotates the
	changes starting backwards from the working tree copy.
	This flag makes the command pretend as if the working
	tree copy has the contents of the named file (specify
	`-` to make the command read from the standard input).

--date <format>::
	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 linkgit:git-log[1].

-M|<num>|::
	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 'blame' 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.
+
<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.

-C|<num>|::
	In addition to `-M`, 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.
+
<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
`-C` options given, the <num> argument of the last `-C` will
take effect.

-h::
	Show help message.
