git diff показывает все изменения между двумя фиксациями

#git

Вопрос:

Допустим, у меня есть 100 коммитов, и я хочу видеть все изменения определенного файла.

 git diff 0..100 -- file
 

Это дает мне только изменения файла между фиксациями. Но чего я действительно хочу, так это чтобы мне показали все внесенные изменения. Например, также те, кто совершает 25, 36, 67 и т. Д.

Есть ли для этого аккуратная команда git или мне нужно создать сценарий? Я думаю, я хочу, чтобы git сделал что-то вроде следующего:

 git diff 0..1, 1..2, 2..3 etc... -- file
 

Хотя я не хочу, чтобы мне приходилось вводить все разные коммиты

Ответ №1:

Я думаю, ты просто хочешь использовать git show ?

 $ git show 0..100 -- file
commit 100
Author: ...
Date:   ...

    Commit Message

diff --git ... ...
...

commit 99
Author: ...
Date:   ...

...
 

Комментарии:

1. Я собирался опубликовать аналогичный git log -p 0..100 -- file ответ, но оба работают, поэтому давайте просто оставим его в качестве комментария.

2. Да, я тоже думал об этом, просто мне очень нравится git show .

3. Действительно. Недооцененная команда мерзавцев, я согласен.

4. Интересно, git show что и git log -p команды почти одинаковые. Большая разница в том, что git log --walk включено по умолчанию и git show имеет --no-walk . Однако git log также не --cc включен по умолчанию, хотя git show и включен, поэтому они также показывают коммиты слияния по-разному.

5. Ну, это и git show обрабатывает гораздо больше особых случаев, таких как извлечение одного файла из старого коммита ( git show a123456:path/to/file ). [о и @RomainValeri]