81

我希望能够看到我今天使用git log. 我想出了git log --after="yesterday"
但是,这对我来说似乎有点尴尬,有没有更简单的命令来达到同样的效果?

4

6 回答 6

98

编辑:由于这是公认的答案,我无法删除它,所以我在这里发布@Simon 的答案:

git log --since="6am"

当然,您可以将时间调整为对您来说足够“早上”的时间:)

于 2011-03-03T09:20:17.047 回答
70

也许最好的方法是使用

git log --since="6am"

您可以根据自己的方便调整时间;)

于 2011-02-25T04:05:09.260 回答
25

要获得今天所有的提交...

git log --since=midnight
于 2015-07-01T05:36:27.000 回答
23

您可以创建别名来缩短此命令

git config --global alias.today 'log --since=7am'

然后执行:

git today
于 2013-08-26T08:11:07.050 回答
8

已经有几个有用的正确答案(例如git log --since="6am"),但奇怪的是文档中缺少 Git 的特殊日期(至少谷歌搜索“昨天”“中午”站点:git-scm.com没有返回结果)。

有一些方法可以找出可用的内容,例如对git 日期语法规范的答案特别有用。Ryan O'Hara在一篇文章中指出

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=shortYYYY-MM-DD以格式仅显示日期而不显示时间。

--date=raw以内部原始 git 格式显示日期%s %z

--date=default显示原始时区中的时间戳(提交者或作者的)。

我最喜欢的答案来自 me_and ,他将我们引导至git date.c 类。向下扫描,你会发现这段代码(在撰写本文时它位于第 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);
}
于 2016-04-30T11:00:48.607 回答
4

顺便说一句,这也有效:
git log --since=am

于 2014-08-05T14:04:09.643 回答