В чем разница между двумя командами ниже. Я вижу разные результаты. Оба запускаются из клона, имеющего одну ветвь.
git whatchanged -m -- foo.c git rev-list --reverse --all -- foo.c
Как уже упоминалось в справочной странице git whatchanged :
git whatchanged
Показывает журналы коммитов и результаты сравнения, которые вводит каждый коммит. Команда внутренне вызывает git rev-list по каналу git diff-tree и принимает параметры командной строки для обеих этих команд.
git rev-list
git diff-tree
«Переданный по каналу git diff-tree» объясняет разный вывод между обеими командами.
Вы можете найти пример git rev-list в сочетании с git diff в " В git, как я могу получить разницу между всеми коммитами, которые произошли между двумя датами? ".
git diff
Обновление за сентябрь 2013 года:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.
Новым пользователям рекомендуется использовать git log. Команда whatchanged по сути такая же, как и git log, но по умолчанию она показывает вывод различий в необработанном формате и пропускает слияния. Команда держится в основном по историческим причинам; пальцы многих людей, которые изучили Git задолго до того, как git log был изобретен , читая список рассылки ядра Linux, обучены набирать его.
Новым пользователям рекомендуется использовать git log. Команда whatchanged по сути такая же, как и git log, но по умолчанию она показывает вывод различий в необработанном формате и пропускает слияния.
git log
whatchanged
Команда держится в основном по историческим причинам; пальцы многих людей, которые изучили Git задолго до того, как git log был изобретен , читая список рассылки ядра Linux, обучены набирать его.
Подробнее см. " Разница между git-log и git-whatchanged? ".
git-log
git-whatchanged