Подтвердить что ты не робот

Разница между git -log и git -watchanged?

  1. Учитывая этот ответ на другой вопрос, и
  2. учитывая, что справочные страницы для git-log и git-whatloaded говорят, что они извлекают из git-rev-list...

... в чем же разница между двумя командами? Зачем им обоим?

4b9b3361

Ответ 1

В коммите 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

(Что бы избежать этого вопроса)

Ответ 2

В своей простейшей форме "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.

Ответ 3

Я не совсем согласен. Вы можете увидеть слияние файлов с изменением log?

Я не нашел эту функциональность и очень полезен для того, чтобы знать, когда файл был объединен в какой-либо ветки, например:

file c.c в branch1 имеет дату фиксации с 1/1/2012, если вы выполняете слияние с branch2, а позже захотите следовать за днем, когда это сообщение было введено в branch2, может git log помощь? Если у вас есть слияния, вы можете искать в них git whatchanged -m sha1