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