Мне сложно понять, как использовать git blame
для получения набора коммитов, которые когда-либо касались заданного диапазона строк. Есть такие же вопросы, как этот, но принятый ответ не приносит мне гораздо больше.
Скажем, у меня есть определение, которое начинается в строке 1000 foo.rb
. Это всего лишь 5 строк, но количество коммитов, которые когда-либо меняли эти строки, огромно. Если я делаю
git blame foo.rb -L 1000,+5
Я получаю ссылки на (максимум) пять отдельных коммитов, которые меняли эти строки, но меня также интересуют коммиты "позади".
Аналогично,
git rev-list HEAD -- foo.rb | xargs git log --oneline
- это почти то, что я хочу, но я не могу указать диапазоны строк для git rev-list
Могу ли я передать флаг git blame
, чтобы получить список коммитов, которые когда-либо касались этих пяти строк, или самый быстрый способ создания script, который извлекает такую информацию? Пусть на данный момент игнорирует возможность того, что определение однажды имело более или менее 5 строк.