Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   git-blame    ( 1 )

показать, какая ревизия и автор последний раз изменяли каждую строку файла (Show what revision and author last modified each line of a file)

  Name  |  Synopsis  |  Description  |  Options  |    The porcelain format    |  Specifying ranges  |  Incremental output  |  See also  |

THE PORCELAIN FORMAT

In this format, each line is output after a header; the header at the minimum has the first line which has:

• 40-byte SHA-1 of the commit the line is attributed to;

• the line number of the line in the original file;

• the line number of the line in the final file;

• on a line that starts a group of lines from a different commit than the previous one, the number of lines in this group. On subsequent lines this field is absent.

This header line is followed by the following information at least once for each commit:

• the author name ("author"), email ("author-mail"), time ("author-time"), and time zone ("author-tz"); similarly for committer.

• the filename in the commit that the line is attributed to.

• the first line of the commit log message ("summary").

The contents of the actual line is output after the above header, prefixed by a TAB. This is to allow adding more header elements later.

The porcelain format generally suppresses commit information that has already been seen. For example, two lines that are blamed to the same commit will both be shown, but the details for that commit will be shown only once. This is more efficient, but may require more state be kept by the reader. The --line-porcelain option can be used to output full commit information for each line, allowing simpler (but less efficient) usage like:

# count the number of lines attributed to each author git blame --line-porcelain file | sed -n 's/^author //p' | sort | uniq -c | sort -rn