- Учитывая этот ответ на другой вопрос, и
- учитывая, что справочные страницы для git-log и git-whatloaded говорят, что они извлекают из git-rev-list...
... в чем же разница между двумя командами? Зачем им обоим?
... в чем же разница между двумя командами? Зачем им обоим?
В коммите 52f425e1 (30 августа 2013 г.) упоминается:
Поощряйте новых пользователей вместо использования
log. В наши дни эти команды унифицированы и имеют разные значения по умолчанию."
git log" позволял вам просматривать только сообщения журнала и никаких различий, когда он был добавлен в начале июня 2005 года. Только в начале апреля 2006 года команда научилась принимать параметры различий.
Из-за этогоwhatchangedпользователи, как правило, использовали "whatchanged", которое уже существовало с середины мая 2005 года, и поддерживало параметры diff.
 Вот что теперь скажет новая версия git whatchanged страницы git whatchanged:
Новым пользователям рекомендуется использовать
git log. Командаwhatchangedпо сути такая же, как и вgit logно по умолчанию показывает выводwhatchangedв необработанном формате и пропускает слияния.Команда сохраняется в основном по историческим причинам; пальцы многих людей, которые изучили Git задолго до того, как
git logбыл изобретен путем чтения списка рассылки ядра Linux, обучены его печатать.
 Что касается комментариев torek, эквивалент git log будет:
git log --raw --no-merges
(Что бы избежать этого вопроса)
В своей простейшей форме "git log" показывает каждую фиксацию (sha, author, date, message), тогда как "git whatchanged" показывает измененные файлы commit plus. Например:
$ git log
commit db9f525674443314a9822a6bd6c3acce49c8f8d6
Author: ...
Date:   Wed Apr 4 22:55:33 2012 -0700
Add more
commit eed0b7aa3cad5d985b5f1d52f3c0605339c119a1
Author: ...
Date:   Tue Apr 3 20:36:04 2012 -0700
del bing/one.c
но для whatchanged:
$ git whatchanged
commit db9f525674443314a9822a6bd6c3acce49c8f8d6
Author: ...
Date:   Wed Apr 4 22:55:33 2012 -0700
Add more
:100644 100644 f2e4113... d415016... M  bar.c
commit eed0b7aa3cad5d985b5f1d52f3c0605339c119a1
Author: ...
Date:   Tue Apr 3 20:36:04 2012 -0700
del bing/one.c
:100644 000000 e69de29... 0000000... D  bing/one.c
Существует множество вариантов для изменения вывода каждой команды. Например, git whatchanged -p 'показывает изменения в форме diff/patch.
Я не совсем согласен. Вы можете увидеть слияние файлов с изменением log?
Я не нашел эту функциональность и очень полезен для того, чтобы знать, когда файл был объединен в какой-либо ветки, например:
 file c.c в branch1 имеет дату фиксации с 1/1/2012, если вы выполняете слияние с branch2, а позже захотите следовать за днем, когда это сообщение было введено в branch2, может git log помощь? Если у вас есть слияния, вы можете искать в них git whatchanged -m sha1