'<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 '<start>' is a regex, it will search from the end of the previous
-L
range, if any, otherwise from the start of file. If '<start>' is^/regex/
, it will search from the start of file. 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>'.
If
:<funcname>
is given in place of '<start>' and '<end>', it is a regular expression that denotes the range from the first funcname line that matches '<funcname>', up to the next funcname line.:<funcname>
searches from the end of the previous-L
range, if any, otherwise from the start of file.^:<funcname>
searches from the start of file. The function names are determined in the same way asgit diff
works out patch hunk headers (see 'Defining a custom hunk-header' in linkgit:gitattributes[5]).