Вы можете просто использовать то, что доказывает git
: git log --since='X seconds ago'
, например перечислить все коммиты за последний год (примерно 365 * 24 * 60 * 60 = 31536000 секунд)
$ git log --since='31536000 seconds ago'
Вы можете задать верхнюю границу с помощью --until
.
Если вы хотите перечислить все коммиты за год до SOME_DATE
, вы можете использовать date
.
# the current time (NOW)
date +%s
# the time a SOME_DATE (e.g. 2011-01-01)
date +%s --date=2011-01-01
# one year before SOME_DATE is
#
# 31536000 + NOW - SOME_DATE
#
# (use bc for calculations)
SECONDS=$(echo 31536000 - $(date +%s) + $(date +%s --date=2011-01-01) | bc)
# putting it all together:
# display all commits since one year before 2011-01-01 until 2011-01-01
git log --since="$(echo 31536000 + $(date +%s) - $(date +%s --date=2011-01-01)| bc) seconds ago" --before="$(echo $(date +%s) - $(date +%s --date=2011-01-01) | bc -l) seconds ago"