如何使Git日志显示今天的所有提交?


76

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

Answers:


90

编辑:由于这是我接受的答案,所以我不能删除它,所以我在这里发布@Simon的答案:

git log --since="6am"

当然,您可以将时间调整为足够“适合您”的时间:)


8
这似乎在git 1.5.6.5,FWIW上不起作用。我知道所有旧版本,但我认为这可能会对某人有所帮助。git log --after="yesterday"似乎最接近正确,但最终包括昨天发生的事情以及昨天之后发生的事情。

3
对我来说:git log --since="yesterday"效果很好。看起来也不错--pretty="oneline"...(git版本1.7.10)
Nick

--since和--after是同义词,因此答案表明问题中的内容相同。这将提供最后24小时的提交(因此@ agentbanks217从昨天开始看到提交的问题)。我在下面给出了不同的答案。
cogg 2013年

另外,喜欢"06:00"工作的时间,适合那些不喜欢AM / PM的时间
Hubro

我以为这将一直持续到第二天凌晨5:59。但是,它仅列出同一天的提交(即,它在午夜停止工作)
binaryfunt

67

也许最好是用

git log --since="6am"

您可以根据需要调整时间;)


还要添加--all以查看此期间所有分支的日志
schoetbi 2014年

22

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

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

然后执行:

git today

21

要获得今天所有人的承诺...

git log --since=midnight

5

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

有多种方法可以找到可用的内容,例如git date语法规范的答案特别有用。赖安·奥哈拉(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)

仅对以人类可读格式显示的日期生效,例如使用时 --prettylog.dateconfig变量为log命令的--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 显示原始时区(提交者或作者)的时间戳。

我最喜欢的答案是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);
}

4

顺便说一句,这也适用:
git log --since=am


4
请注意,这等效于--since=noon
yoyo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.