Разница между git-log и git-чем изменилась?
- Учитывая этот ответ на другой вопрос, и
- учитывая, что справочные страницы для git-log и git-whatloaded говорят, что они извлекают из git-rev-list...
... в чем же разница между двумя командами? Зачем им обоим?
3 ответа
В коммите 52f425e1 (30 августа 2013 г.) упоминается:
Поощряйте использование новых пользователей
log
'вместо. В наши дни эти команды унифицированы и имеют разные значения по умолчанию.'
git log
"Позволял просматривать только сообщения журнала и отсутствие различий, когда они были добавлены в начале июня 2005 года. Только в начале апреля 2006 года команда научилась принимать параметры различий.
Из-за этого опытные пользователи, как правило, использовалиwhatchanged
", которая уже существует с середины мая 2005 года и поддерживает различные параметры.
Вот для чего новая версия справочной страницы git whatchanged
скажу сейчас:
Новым пользователям рекомендуется использовать
git log
вместо.whatchanged
Команда по сути такая же, какgit log
но по умолчанию показывает исходный формат diff и пропускает слияния.Команда сохраняется в основном по историческим причинам; пальцы многих людей, которые изучили Git задолго до
git log
был придуман чтением списка рассылки ядра Linux, обучен его печатать.
В простейшем виде "git log" показывает каждый коммит (sha, автор, дата, сообщение), тогда как "git whatchanged" показывает коммит плюс измененные файлы. Например:
$ 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
но за что поменял
$ 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
имеет дату фиксации с 01.01.2012, если вы делаете слияние с branch2
и позже хотел бы следить за днем, когда этот коммит был введен в branch2
, Можно git log
Помогите? Если у вас есть слияния, вы можете искать в них с git whatchanged -m sha1