Как получить 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