Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git日志中的奇怪行为——因为_Git - Fatal编程技术网

git日志中的奇怪行为——因为

git日志中的奇怪行为——因为,git,Git,我有一个包含18次提交的测试存储库。 git log | grep Date:返回以下内容: Date: Fri Sep 20 08:04:13 2013 +0200 Date: Fri Sep 20 08:03:28 2013 +0200 Date: Fri Sep 20 08:02:05 2013 +0200 Date: Thu Sep 19 09:53:10 2013 +0200 Date: Wed Sep 18 17:04:41 2013 +0200 Date:

我有一个包含18次提交的测试存储库。
git log | grep Date:
返回以下内容:

Date:   Fri Sep 20 08:04:13 2013 +0200
Date:   Fri Sep 20 08:03:28 2013 +0200
Date:   Fri Sep 20 08:02:05 2013 +0200
Date:   Thu Sep 19 09:53:10 2013 +0200
Date:   Wed Sep 18 17:04:41 2013 +0200
Date:   Wed Sep 18 17:03:36 2013 +0200
Date:   Sat Sep 14 14:42:10 2013 +0200
Date:   Wed Sep 11 10:37:25 2013 +0200
Date:   Fri Aug 30 13:59:43 2013 +0200
Date:   Fri Aug 30 13:56:35 2013 +0200
Date:   Fri Aug 30 11:30:17 2013 +0200
Date:   Thu Aug 29 13:44:28 2013 +0200
Date:   Thu Aug 29 13:34:32 2013 +0200
Date:   Wed Aug 28 14:44:03 2013 +0200
Date:   Wed Aug 28 14:32:44 2013 +0200
Date:   Tue Aug 27 16:18:53 2013 +0200
Date:   Tue Aug 27 16:16:29 2013 +0200
Date:   Tue Aug 27 15:46:04 2013 +0200
我想从今天(20.09.2013)发生的所有提交中获取日志,所以我尝试了

git log --since=20-09-2013 | grep Date: 
我对此一无所知。所以我在这里搜索了一下,发现了一个问题。它在评论中指出

似乎是这样,没有时间,它默认为一天的最后一秒

好的,没问题。让我们试试git日志--since=19-09-2013。返回

Date:   Fri Sep 20 08:04:13 2013 +0200
Date:   Fri Sep 20 08:03:28 2013 +0200
Date:   Fri Sep 20 08:02:05 2013 +0200
Date:   Thu Sep 19 09:53:10 2013 +0200
等等,这看起来很奇怪,不是吗?如果它应该使用指定日期的最后一秒,为什么它会显示在该日期
09:53:10
发生的提交?git不应该只显示2013年9月19日之后发生的提交吗

但是等等,它变得更奇怪了!我尝试添加一个时间,结果是

git log --since=20-09-201309:00:00 
Date:   Fri Sep 20 08:04:13 2013 +0200
Date:   Fri Sep 20 08:03:28 2013 +0200
Date:   Fri Sep 20 08:02:05 2013 +0200
这就完成了tri…等一下…所有提交都发生在
09:00:00
之前。为什么git会显示它们?事实上,就我所知,我也犯了一个语法错误!让我们尝试一些东西:

git log --since=20-09-201312:08:00 | grep Date:
Date:   Fri Sep 20 08:04:13 2013 +0200
Date:   Fri Sep 20 08:03:28 2013 +0200
Date:   Fri Sep 20 08:02:05 2013 +0200
仍然有效

git log --since=20-09-201312:09:00 | grep Date:
<nothing>
git日志——自=20-09-201312:09:00 | grep日期:
嗯,那里发生了什么事?似乎git只使用最后两个:-分隔的数字。但是,如果git似乎认为我在寻找
20.09.201312 08:00
之后的提交,为什么git会显示在
20.09.2013 08:00
之后发生的提交呢?这对我来说毫无意义


谁能给我解释一下这一团糟?不是我没有解决问题的方法,而是我想了解,这里发生了什么…默认情况下,
git log
中的日期将以默认格式显示

--日期=默认值显示原始时区(提交人或作者)中的时间戳

基于

--date=local显示用户本地时区中的时间戳

--日期=默认值显示原始时区(提交人或作者)中的时间戳

我建议您运行
git log--date=local--since=
。它应该显示本地机器时间内的所有提交

现在,回到您关于
的问题,因为

如果
--since=
没有特定的时间,它将在运行此命令时使用本地时间

比如说,

--since "20-09-2013"
当您在上午9点运行此命令时,将作为

--since "20-09-2013 09:00:00"
所以,这就是为什么它在那天没有做出一些承诺。(因为它已经超过了您当前的时间)

如果要搜索今天的所有提交,请使用

--since "20-09-2013 00:00:00"
回到神秘故事

现在,git log--since=19-09-2013。
返回

Date:   Fri Sep 20 08:04:13 2013 +0200
Date:   Fri Sep 20 08:03:28 2013 +0200
Date:   Fri Sep 20 08:02:05 2013 +0200
Date:   Thu Sep 19 09:53:10 2013 +0200
日期:2013年9月20日星期五08:04:13+0200

日期:2013年9月20日星期五08:03:28+0200

日期:2013年9月20日星期五08:02:05+0200

日期:2009年9月19日星期四09:53:10 2013+0200


我猜您是在2013年9月20日08:04:13之后运行此命令的。(根据您的提示,当您从今天开始使用时,它不会显示任何内容。)

@krlmlr OP对一个现已删除的答案发表评论说,答案是一样的,+0200。在我的系统上测试建议使用
——因为
查看的是提交日期,而不是作者日期<但是,默认情况下,code>git log
只显示作者日期。你能用git log--format=fuller
检查提交日期是否不同吗?@hvd我检查过,似乎每次提交时,
AuthorDate
都与
CommitDate
完全相同。这是一些奇怪的行为……但感谢你的启示:D