git:检查最后一次获取的运行时间

red*_*ent 3 git bash

我有一个脚本显示最后几个日志更改,但如果一天或两天没有运行提取,我希望脚本手动运行它.

以下是它如何工作的示例bash代码:

#!/bin/bash

# this is what I need:
last_fetch_date=`git fetch --show-last-fetch-date`

# do the math to see how long ago
timestamp=`date -d "$last_fetch_date" +%s`
now=`date +%s`
diff=`echo $now - $timestamp | bc -l`

# two days
if [ `echo $diff' >= 2*24*60*60' | bc -l` == "1" ]; then
    git fetch --tags
fi
Run Code Online (Sandbox Code Playgroud)

sle*_*ske 6

没有办法知道上次git fetch运行的时间,因为git不存储该信息.如果你想知道,每次运行它时都必须在某个地方写一个时间戳.

但是,你可以找出git fetch最后实际获取的东西.每次git fetch提取新提交时,它都会更新reflog.要查看它,请使用eg

git reflog show --date=iso -n 1 origin/master
Run Code Online (Sandbox Code Playgroud)

这将显示origin/master与日期的最后一次更改.警告:当修改它时(通过推动)也会显示 .

最后,在没有所有这些检查的情况下,只要方便就可以更容易地获取.git fetch如果没有东西可以获取,那么运行得非常快.