获取最后提交日期:
您想要“给定分支的给定 git 用户和 git 项目的“存储库范围内的最后提交日期”。
您之后的日期是您访问仓库并转到 commits -> master 时显示的最新日期,例如:
https://github.com/sentientmachine/TeslaAverageGainByMonthWeekDay/commits/master
页面顶部显示最新的提交日期。
使用终端获取 git 中的最后本地提交日期
使用git help log 获取有关格式代码的更多信息以传递给--format 以告诉 git log 要获取的数据类型。
git 中的最后提交日期:
git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 07:40:52
但正如您所指出的,您必须在执行最后一次提交的机器上运行该命令。如果最后一次提交日期是在另一台机器上执行的,上面的命令只报告本地最后一次提交……所以:
或存储库范围:获取最后一次 git 提交日期
同上,但先执行 git pull。
git pull;
git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 09:15:10
或者(如果存储库托管在 GitHub 中)使用 JSON API:
按计划拉动 git 并不酷,因为它很慢,而且你正在用不必要的网络流量敲打 GitHub。直接查询GitHub rest api即可:
#assuming you're using github and your project URL is visible to public:
# https://github.com/yourusername/your_repo_name
#then do:
curl https://api.github.com/repos/yourusername/your_repo_name/commits/master
这会让你面对一个满是 json 的屏幕,所以把你最喜欢的 json 解析器发送给它,并获取名为 date 的字段:
curl https://api.github.com/repos/<your_name>/<your_repo>/commits/master 2>&1 | \
grep '"date"' | tail -n 1
#prints "date": "2019-06-05T14:38:19Z"
来自下面的 cmets,gedge 对咒语进行了方便的花花公子改进:
git log -1 --date=format:"%Y/%m/%d %T" --format="%ad"
2019/11/13 15:25:44
或者更简单:(https://git-scm.com/docs/git-log/1.8.0)
git --no-pager log -1 --format="%ai"
2019-12-13 09:08:38 -0500
您的选择是北、南、东和“丹尼斯”。