Как получить diff для указанного пользователя между двумя датами из git?

Или как использовать команду git whatchanged для отображения списка коммитов для указанного пользователя? Есть ли какой-нибудь сценарий без сценария? (встроенная команда git)

3 ответа

Я считаю, что нет такого способа получить различие, только зная даты.

На сегодняшний день вы можете сделать следующее:

git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H"

А потом git diff между первой и последней редакцией. Если список ревизий слишком длинный, используйте git log ... с | head -1 а также | tail -1 получить первую и последнюю ревизии.

Обратите внимание, что вышеприведенный журнал git будет возвращать ревизии точно между заданными датами, то есть ревизии для 5 октября, 6 октября,..., 10 октября.

Это возможно и с критериями пользователя / коммиттера:

git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"

Это будет соответствовать чему угодно

  • между этими датами
  • по авторам, совпадающим с именами John или же Mary
  • где сообщение о фиксации включает (например, номер билета Jira в форме) MBT или же MBF плюс числовой код, который может включать в себя - голец.
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch
Другие вопросы по тегам