我有这个脚本
"$(date +%Y-%m-01) -$i months" +%Y-%m)-01"
非常适合从过去12个月开始,逐月,逐月。我希望在使用的时间内有一个静态值,因此它不会从当前时间返回12个月,而是从静态时间返回。
我正在和Github一起使用它,我希望能够在我想要回到x个月时与我同步的提交保持一致。如何将时间指定为秒,并将其与此脚本一起使用?
答案 0 :(得分:0)
您可以使用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"