【发布时间】:2014-02-05 21:16:54
【问题描述】:
我有一个显示最近几次日志更改的脚本,但如果在一两天内未运行提取,我希望脚本手动运行它。
这是它如何工作的示例 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
【问题讨论】:
-
只是检查
.git/logs/refs/remotes/origin/master或类似的修改日期的想法......或者使用钩子 -
按照上面的建议检查远程参考文件的修改时间可能是上次运行 fetch 的一个很好的替代,但请记住,使用打包的 refs,refs 可能在该位置没有文件。
-
你多久运行一次这个脚本?每次调用 git fetch 可能更有意义。如果无事可做,时间不会太长。或者您可以设置一个 cron 作业,每天进行一次提取。
-
它可以手动运行,也可以由刚刚进行提取的另一个脚本调用。
-
另外,在我们的服务器上,
git fetch通常会要求您提供密码,即使我们正在缓存密码