Ответ 1
Вы не можете, по крайней мере, не в Git. (Напоминание другим, кто посещает этот вопрос: это не просмотр даты автора, он о выборе фиксации по дате автора, a la --since
/--after
и --until
/--before
. Эти селекторы используют дату коммиттера, а не дату автора. Рассмотрим в качестве крайнего примера фиксацию, сделанную "сейчас", так что дата ее коммиттера находится в 2000-х годах, но в предыдущее время в поле даты-автора дана некоторая дата в 1999 году. Если ваш диапазон выбора "любой" время в начале века "вы отмените эту фиксацию, так как дата ее коммиттера" сейчас ", более десятилетия после 1999 года.)
Я считаю небольшую ошибку в Git: вы должны иметь возможность запросить, чтобы она использовала поле даты автора, где бы вы ни запрашивали, чтобы оно использовало поле даты коммиттера. Это легко с форматированием журнала, так как мы имеем %ad
и %cd
и т.п., Но невозможны с выбором фиксации. Самое близкое к тому, что git rev-list
может сортировать по дате авторизации (в общей топо-сортировке).
Глобальный переключатель в git rev-list
, например --use-author-date
, будет работать как простой патч и не будет слишком сложно добавить к Git, но я думаю, что было бы лучше иметь --min-author-age
и --max-author-age
или аналогичный, и флаг "сортировать по дате автора" (независимо от общего флага --topo-order
, так что установка обоих флагов имеет тот же эффект, что и --author-date-order
).
В качестве обходного пути вы можете перечислить все потенциально интересные коммиты (с помощью git rev-list
или эквивалента, например git log
: использовать любой способ, который делает коммандер потенциально интересным, за исключением фильтров даты: в этом случае только --all
) и извлеките все свои поля даты автора (с помощью git log --format=%at
или что-то еще), затем выполните свою собственную обрезку списка идентификаторов фиксации, затем повторно отправьте оставшиеся идентификаторы фиксации на git log --no-walk
. Но в лучшем случае это больно. См. Тим Бейгелейсен, используя awk для более подробной информации.