Как получить diff
для указанного пользователя между двумя датами из git? Или как использовать команду git whatchanged
для отображения коммитов для указанного пользователя?
Есть ли способ без сценариев (встроенная команда git)?
Как получить diff
для указанного пользователя между двумя датами из git? Или как использовать команду git whatchanged
для отображения коммитов для указанного пользователя?
Есть ли способ без сценариев (встроенная команда git)?
Я считаю, что нет такого способа получить разницу, зная только даты.
На сегодняшний день вы можете сделать следующее:
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 октября.
@{date}
, например, git diff @{date1} @{date2}
. Проблема в том, что конструкция @{date}
не просматривает историю фиксации, чтобы преобразовать дату в идентификатор фиксации, а вместо этого использует revlog. В результате, если вы будете действительно часто тянуть, в вашем журнале изменений будет достаточно подробной информации, чтобы описанное выше могло сделать то, что вы хотите, но если вы нет, результаты будут неточными...
- person snogglethorpe; 28.10.2011
git log --since="FEB 1 2014" --until="FEB 30 2014"
- person bonyiii; 16.05.2014
Это возможно, и с критериями пользователя/коммиттера:
git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"
Это будет соответствовать чему угодно
John
или Mary
MBT
или MBF
плюс числовой код, который может включать символ -
.