Это существует, но на самом деле это особенность git log
:
git log -p [--follow] [-1] <path>
Обратите внимание, что -p
также можно использовать для показа встроенного diff из одного коммита:
git log -p -1 <commit>
Используемые параметры:
-p
(также -u
или --patch
) скрыт deeeeeeeep на git-log
странице руководства и фактически является опцией отображения git-diff
. Когда используется с log
, он показывает патч, который будет сгенерирован для каждого коммита , вместе с информацией о коммите - и скрывает коммиты, которые не касаются указанного <path>
. (Это поведение описано в параграфе --full-diff
, который приводит к отображению полного различий каждого коммита.)
-1
показывает только самое последнее изменение указанного файла ( -n 1
может использоваться вместо -1
); в противном случае отображаются все отличные от нуля различия этого файла.
--follow
требуется, чтобы увидеть изменения, которые произошли до переименования.
Насколько я могу судить, это единственный способ сразу увидеть последний набор изменений, внесенных в файл, без использования git log
(или аналогичного) подсчета количества промежуточных ревизий или определения хэша фиксации.
Чтобы увидеть более ранние изменения ревизий, просто прокрутите журнал или укажите коммит или тэг, с которого нужно начать журнал. (Конечно, указание коммита или тега возвращает вас к исходной проблеме выяснения, что такое правильный коммит или тег.)
Кредит, где кредит должен:
- Я обнаружил
log -p
благодаря этому ответу .
- Благодарим FranciscoPuga и этот ответ за показ мне
--follow
варианта.
- Благодарим КрисБетти за упоминание
-n 1
варианта и Ататко за упоминание -1
варианта.
- Благодарим sweaver2112 за то, что он заставил меня прочитать документацию и выяснить, что
-p
«означает» семантически.
git diff HEAD^ <file_path>