【发布时间】:2011-07-04 01:27:55
【问题描述】:
我希望能够看到我今天使用git log 所做的所有提交。我想出了git log --after="yesterday"
但是,这对我来说似乎有点尴尬,有没有更简单的命令可以达到同样的效果?
【问题讨论】:
我希望能够看到我今天使用git log 所做的所有提交。我想出了git log --after="yesterday"
但是,这对我来说似乎有点尴尬,有没有更简单的命令可以达到同样的效果?
【问题讨论】:
已经有几个有用的正确答案(例如git log --since="6am"),但奇怪的是文档中缺少 Git 的特殊日期(至少谷歌搜索 "yesterday" "noon" site:git-scm.com 没有返回结果)。
有一些方法可以找出可用的内容,例如Specification for syntax of git dates 的答案特别有用。在一个Ryan O'Hara points out那个
it seems to accept all formats that it can output, as described in the documentation for the --date option:
--date=(relative|local|default|iso|rfc|short|raw)仅对以人类可读格式显示的日期生效,例如在使用
--pretty。log.dateconfig 变量设置日志的默认值 命令的--date选项。
--date=relative显示相对于当前时间的日期,例如“2 小时前”。
--date=local显示用户本地时区的时间戳。
--date=iso(或--date=iso8601)以 ISO 8601 格式显示时间戳。
--date=rfc(或--date=rfc2822)以 RFC 2822 格式显示时间戳,通常在电子邮件消息中找到。
--date=short仅显示日期而不显示时间,YYYY-MM-DD格式。
--date=raw以内部原始 git 格式%s %z格式显示日期。
--date=default显示原始时区(提交者或作者)的时间戳。
我最喜欢的答案是from me_and,他将我们引导至the git date.c class。向下扫描,你会发现这段代码(在撰写本文时它位于第 925 行):
static const struct special {
const char *name;
void (*fn)(struct tm *, struct tm *, int *);
} special[] = {
{ "yesterday", date_yesterday },
{ "noon", date_noon },
{ "midnight", date_midnight },
{ "tea", date_tea },
{ "PM", date_pm },
{ "AM", date_am },
{ "never", date_never },
{ "now", date_now },
{ NULL }
};
我肯定在使用git log --before=tea,尽管查看date_tea 函数我认为他们没有读过Rupert Brooke:
static void date_tea(struct tm *tm, struct tm *now, int *num)
{
date_time(tm, now, 17);
}
【讨论】:
为了获得今天所有的提交...
git log --since=midnight
【讨论】:
顺便说一句,这也有效:git log --since=am
【讨论】:
--since=noon。
您可以创建别名来缩短此命令
git config --global alias.today 'log --since=7am'
然后执行:
git today
【讨论】:
编辑:由于这是已接受的答案,我无法删除它,所以我在这里发布@Simon 的答案:
git log --since="6am"
当然,您可以将时间调整为对您来说足够“早上”的时间:)
【讨论】:
git log --after="yesterday" 似乎最接近正确,但它最终包括昨天发生的事情以及昨天之后发生的事情。
git log --since="yesterday" 效果很好。 --pretty="oneline" 看起来也不错...(git 版本 1.7.10)
"06:00" 这样的时间也适用于那些不喜欢上午/下午的人
也许最好是使用
git log --since="6am"
您可以根据自己的方便调整时间;)
【讨论】: