我有一个脚本显示最后几个日志更改,但如果在一两天内没有运行提取,我希望脚本能够手动运行。
以下是如何使用的示例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
答案 0 :(得分:6)
由于git不存储该信息,因此无法知道何时运行<{1}} 。如果您想知道,每次运行时都必须在某处写一个时间戳。
但是,您可以在git fetch
上次实际提取某些内容时找到。每次git fetch
获取新提交时,它都会更新reflog。要查看它,请使用例如
git fetch
这将显示git reflog show --date=iso -n 1 origin/master
与日期的最后一次更改。警告:这也将显示何时
你修改了它(通过推送)。
最后,在没有所有这些检查的情况下,只要方便就可以更轻松地进行提取。如果没有什么可以取的,origin/master
会很快运行。
答案 1 :(得分:0)
这是我最终做的事,感谢@sleske
#!/bin/bash
# do the math to see how long ago was the last fetch
now=`date +%s`
last_fetch=`git reflog show --date=raw -n 1 origin/master | grep -oE '{[0-9]+' | sed 's%{%%'`
diff=`echo $now - $last_fetch | bc -l`
if [ `echo $diff' >= 2*24*60*60' | bc -l` == "1" ]; then
git fetch -q
git fetch --tags -q
fi