#git #terminal #git-log #git-blame
#git #терминал #git-log #git-виноват
Вопрос:
Предположим, что файл (и его путь) path/to/file
в определенной версии зафиксирован в фиксации с определенным sha, который мы вызываем hex_sha
. После использования git blame file/to/path hex_sha
я получаю каждую строку, измененную в этой редакции. Для этого примера мы предполагаем проверить строку с номером line_i
, предполагающим другую предшествующую дату date_limit
. Как я могу использовать git log
, чтобы узнать, сколько раз (или список коммитов) строка line_i
в файле path/to/file
была изменена с версии с помощью sha hex_sha
до определенной даты date_limit
?
Я пробовал: git log --since=date_limit origin..hex_sha -- -Lline_i, 1:path/to/file
и другие различные варианты этой команды, но ничего не происходит, или git плохо понимает имя файла. У меня сложилось впечатление, что после --
того, как присутствует целевая ревизия, git принимает первый аргумент после --
как путь к файлу. Я уверен, что date_limit предшествует фиксации в экзамене.
Комментарии:
1. Все , что после
--
, считается путем.2. Это была моя забота, но могу ли я указать другие параметры, требующие — (например, since)? Я читаю git-scm.com/docs/git-log руководство ничего не говорит о моей проблеме
3.
--
само по себе, как и вgit something -- whatever
, указывает на конец опций.--option
не работает. Sogit something --foo --bar -- --baz
означает, что--foo
и--bar
являются параметрами дляgit-something
команды, но--baz
это имя файла (или pathspec) дляgit-something
команды. (Ну, нетgit-something
команды, но если бы она была, это то, что это было бы.)