Может ли Git показывать историю для выбранных строк?

У меня есть большой файл, где где-то посередине есть функция, которая, как я знаю, была изменена несколько раз.git annotate или жеblame покажет самый последний коммит для каждой строки, но если я прав, он покажетonly самый последний, а не список других коммитов, которые затрагивали эту строку раньше.

Так есть ли команда в Git, где я мог бы сказать что-то вродеshow me commits that affected lines 250..260 in file XYZ?

 0xAX30 мая 2012 г., 14:49
не строка, а git log <path>… - показывать только коммиты, которые влияют на указанные пути. может это поможет
 lpapp10 окт. 2014 г., 10:25
 Borek Bernard30 мая 2012 г., 15:07
Спасибо @CharlesB, я нашел там несколько полезных советов и разместил их здесь в качестве ответа.
 CharlesB30 мая 2012 г., 14:52

Ответы на вопрос(5)

Решение Вопроса

Как предлагается в одном из комментариев в Git - как посмотреть историю изменений метода / функции?, делаю

git gui blame <file>

, а затем щелкните правой кнопкой мыши строку и выберите Blame Parent Commit делает то, что мне нужно.

щелкните правой кнопкой мыши -> Git -> Показать историю для выделения

 pymarco25 мар. 2014 г., 22:22
Какая потрясающая особенность! Спасибо, что обратили на это мое внимание !!
 David Mann04 февр. 2016 г., 20:52
intellij тоже это делает
 sid60620 дек. 2017 г., 10:10
Круто, это сэкономило мне много времени

Щелкните правой кнопкой мыши -> Git-> Annotate

 David Mann04 февр. 2016 г., 20:56
this не отвечает на вопрос, так как отображает только самый последний коммит, затрагивающий одну строку.
git show $(git blame XYZ -L 250,260 | awk '{print $1}')

Каждая строка кода всегда документируется. с помощью@ mislav

 David Winiecki24 нояб. 2014 г., 23:22
Если только результаты были хронологическими.

это невозможно. Вам нужно будет написать сценарий вокруг мерзавца. Вы можете найтиbash пример такого скрипта на GitHub.

Ваш ответ на вопрос