-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>::
	Annotate only the given line range.  <start> and <end> can take
	one of these forms:

	- number
+
If <start> or <end> is a number, it specifies an
absolute line number (lines count from 1).
+

- /regex/
+
This form will use the first line matching the given
POSIX regex.  If <end> is a regex, it will search
starting at the line given by <start>.
+

- +offset or -offset
+
This is only valid for <end> and will specify a number
of lines before or after the line given by <start>.
+

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

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

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

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

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

--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).

-M|<num>|::
	Detect moving lines in the file as well.  When a commit
	moves a block of lines in a file (e.g. the original file
	has A and then B, and the commit changes it to B and
	then A), traditional 'blame' algorithm 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.
+
<num> is optional but it is the lower bound on the number of
alphanumeric characters that git must detect as moving
within a file for it to associate those lines with the parent
commit.

-C|<num>|::
	In addition to `-M`, detect lines 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 looks for copies from all other files in the
	parent for the commit that creates the file in addition.
+
<num> is optional but it is the lower bound on the number of
alphanumeric characters that git must detect as moving
between files for it to associate those lines with the parent
commit.

-h::
--help::
	Show help message.
