Git log для части файла
Мне бы хотелось, чтобы все компиляции git повлияли на то, что в настоящее время является строками x - y в одном из моих файлов. Есть ли способ, которым я могу это сделать?
Ответы
Ответ 1
Теперь git log
поддерживает параметр -L
, например git blame
. Это было добавлено в Git v1.8.4.
-L <start>,<end>:<file>
-L :<regex>:<file>
Trace the evolution of the line range given by "<start>,<end>" (or
the funcname regex <regex>) 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.
(git -log документации)
Ответ 2
Вы можете использовать git blame
с опцией -L:
-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>.
Итак, это будет что-то вроде ниже:
git blame -L 40,60 foobar
Обратите внимание, что git винить показывает последнюю версию для каждой строки. Вы также можете попробовать с опцией --reverse
:
- обратный
Прогулка вперед вперед, а не в обратном направлении. Вместо того, чтобы показывать в которой появилась строка, это показывает последнюю ревизию, в которой линия существовала. Это требует диапазон пересмотра, такой как START..END где путь вины существует в START.
http://www.kernel.org/pub/software/scm/git/docs/git-blame.html
Возможно, вы также можете использовать
gitk foobar
Ответ 3
Не совсем ответ на ваш вопрос, но вы можете использовать git blame <file>
и спросить человека, который написал строки, которые вас беспокоят.