#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]