View git history of specific line

bomz gave the right option but with wrong syntax. Fixed line would look like this:

git log -L '/the line from your file/,+1:path/to/your/file.txt'

The meaning of argument to -L is “find the first occurrence of regex /the line from your file/, in path/to/your/file.txt and show the log regarding one line range starting at this point (meaning, just this line, but you could say +5 instead)”.

The caveat is, if the line contains characters with special meaning in regex, you need to escape them.

However, it’s likely much simpler to use line number, like this:

git log -L15,+1:'path/to/your/file.txt'

(for line 15 of file path/to/your/file.txt)

In both cases +1 can be replaced with bigger number to get more line, or with regex to match the end of selected range.

Detailed description from the docs:

-L <start>,<end>:<file>
-L :<funcname>:<file>

Trace the evolution of the line range given by “<start>,<end>” (or the function name regex <funcname>) within the
<file>. You may not give any pathspec limiters. This is currently
limited to a walk starting from a single revision, i.e., you may only
give zero or one positive revision arguments. You can specify this
option more than once.

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

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)