В чем разница между "git whatchanged - filename" и "git rev-list - filename" - PullRequest
6 голосов
/ 07 декабря 2011

В чем разница между двумя командами ниже. Я вижу разные результаты.
Оба запускаются из клона, имеющего одну ветвь.

git whatchanged -m -- foo.c

git rev-list --reverse --all -- foo.c

1 Ответ

3 голосов
/ 07 декабря 2011

Как уже упоминалось в справочной странице git whatchanged :

Показывает журналы коммитов и результаты сравнения, которые вводит каждый коммит.
Команда внутренне вызывает git rev-list по каналу git diff-tree и принимает параметры командной строки для обеих этих команд.

«Переданный по каналу git diff-tree» объясняет разный вывод между обеими командами.

Вы можете найти пример git rev-list в сочетании с git diff в " В git, как я могу получить разницу между всеми коммитами, которые произошли между двумя датами? ".


Обновление за сентябрь 2013 года:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.

Новым пользователям рекомендуется использовать git log. Команда whatchanged по сути такая же, как и git log, но по умолчанию она показывает вывод различий в необработанном формате и пропускает слияния.

Команда держится в основном по историческим причинам; пальцы многих людей, которые изучили Git задолго до того, как git log был изобретен , читая список рассылки ядра Linux, обучены набирать его.

Подробнее см. " Разница между git-log и git-whatchanged? ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...