Git 如何使用静态时间值获取cygwin“date”的最后12个月

Git 如何使用静态时间值获取cygwin“date”的最后12个月,git,date,github,cygwin,Git,Date,Github,Cygwin,我有这个剧本 $date+%Y-%m-01-$i个月+%Y-%m-01 这对于从日期算起的最后12个月,逐月计算非常有用。我想为当前使用的时间设置一个静态值,这样就可以从静态时间返回,而不是从当前时间返回12个月 我在Github中使用它,我希望在我想要返回x个月时与我同步的提交保持一致。如何将时间指定为秒并与此脚本一起使用?您可以使用git证明的内容:git log-自class='X秒前',例如,列出去年大约365*24*60*60=31536000秒的所有提交 $ git log --si

我有这个剧本

$date+%Y-%m-01-$i个月+%Y-%m-01

这对于从日期算起的最后12个月,逐月计算非常有用。我想为当前使用的时间设置一个静态值,这样就可以从静态时间返回,而不是从当前时间返回12个月

我在Github中使用它,我希望在我想要返回x个月时与我同步的提交保持一致。如何将时间指定为秒并与此脚本一起使用?

您可以使用git证明的内容:git log-自class='X秒前',例如,列出去年大约365*24*60*60=31536000秒的所有提交

$ git log --since='31536000 seconds ago'
您可以使用-until给出上限

如果要在某个日期前一年列出所有提交,可以使用日期


谢谢,这可能有用,但我不确定我的问题措辞是否恰当。我希望能够在每月的第一天,第二天,一个月一个月地回去。或者至少从某个指定的秒值开始。我根本不希望当前时间影响git日志的输出。
# 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"