Наиболее вероятная проблема здесь в том, что --since
или --after
проверяет дату коммиттера , тогда как %ad
показывает автора дату.
Обычно дата коммиттера будет на позже , чем дата автора, если они различаются, поскольку дата автора будет скопирована из более раннего коммита, который был подобран вишней или каким-либо иным образом переработан.Здесь дата автора будет временем, когда был создан исходный коммит, а датой коммиттера будет время, когда вы сделали коммит.Так что %ad
может показывать дату в начале января, даже если фиксация была завершена в конце января или феврале.
Тем не менее, тот факт, что эти две даты могут отличаться, является наиболее вероятным источником проблемы.Чтобы увидеть, так ли это, посмотрите на «пропущенные» коммиты, используя --pretty=fuller
или аналогичный.Вы можете сделать это с помощью git show
или git log
, например:
$ git log --no-walk --pretty=fuller | sed 's/@/ /'
commit c05048d43925ab8edcb36663752c2b4541911231
Author: Junio C Hamano <gitster pobox.com>
AuthorDate: Tue Sep 4 14:33:27 2018 -0700
Commit: Junio C Hamano <gitster pobox.com>
CommitDate: Tue Sep 4 14:33:27 2018 -0700
Git 2.19-rc2
Signed-off-by: Junio C Hamano <gitster pobox.com>
В этом случае две даты совпадают, но рассмотрите этот коммит:
commit 6c6ce21baa9b50d394bb8ed9878944504ffd57d8
Author: Eric Sunshine <sunshine sunshineco.com>
AuthorDate: Fri Aug 31 04:33:42 2018 -0400
Commit: Junio C Hamano <gitster pobox.com>
CommitDate: Fri Aug 31 12:05:24 2018 -0700
, который показываеткак автор и коммиттер - это разные люди с разными временными метками.
(не существует эквивалента --since
, который проверяет дату автора вместо даты коммиттера.)