首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在日期之后获取提交历史记录(自/后参数)

在日期之后获取提交历史记录(自/后参数)
EN

Stack Overflow用户
提问于 2013-03-08 18:27:45
回答 1查看 184关注 0票数 1

现在是三月八号。我想看看3月1日以来的吉特历史。为此,我使用命令:

代码语言:javascript
复制
$ git log --pretty="%cd - %h - %an - %s" --after="2013-3-01 0am"

效果很好。然后,我希望看到历史“在未来”(因为3月8日将after值增加+1天)。示例:

代码语言:javascript
复制
$ git log --pretty="%cd - %h - %an - %s" --after="2013-3-11 0am"

命令返回空历史记录,这是正确的。然后after值等于18:

代码语言:javascript
复制
$ git log --pretty="%cd - %h - %an - %s" --after="2013-3-18 0am"

Git开始返回完整的月份历史记录。为什么?在我的示例中,git log日期时间格式似乎有问题。

git版本1.7.12.4 (Apple Git-37)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-08 19:43:38

在这个问题上有一个开虫。如果您已经从源构建了git,则包含一个test-date实用程序。下面是通过它运行不同日期的一些结果(备注-18不再是我的断点,所以使用19):

代码语言:javascript
复制
$ ./test-date approxidate "2013-3-01 0am"
2013-3-01 0am -> 2013-03-01 19:22:21 +0000

$ ./test-date approxidate "2013-3-11 0am"
2013-3-11 0am -> 2013-03-11 19:22:21 +0000

$ ./test-date approxidate "2013-3-19 0am"
2013-3-19 0am -> 2013-03-03 19:22:21 +0000

很明显,时间在所有情况下都是有问题的,所以让我们来确定一下时间:

代码语言:javascript
复制
$ ./test-date approxidate "2013-3-01 0:00"
2013-3-01 0:00 -> 2013-03-01 08:00:00 +0000
$ ./test-date approxidate "2013-3-19 0:00"
2013-3-19 0:00 -> 2013-03-19 07:00:00 +0000

这看起来更好一些,而且我们的未来日期不再严重错误,但时间相对于我的时区而言是不同的,有无DST (E:对于任何未来的读者来说,DST的转换发生在2013-03-10年间,因此这些日期确实包含了DST)。

代码语言:javascript
复制
$ ./test-date approxidate "2013-3-19 0:00 +0000"
2013-3-19 0:00 +0000 -> 2013-03-19 00:00:00 +0000

现在我们的约会看起来好多了。如果我确实希望时区生效,现在很容易更改为-0800/-0700PSTPDT或任何其他时区。

简言之,有两个问题:

  1. 你的时间没有被正确地分析。一旦包含了时间组件,git在解析日期方面就会变得更聪明。
  2. 在解析任何日期的过程中,git放弃您的dd并在当前月份的某一天使用您的mm: $./test-日期批准" 2013-3-20“2013-20 -> 2013-03-03 19:22:21 +0000 $./测试-日期审批" 2013-4-19”2013-19 -> 2013-03-04 19:22:21 +0000 $./test-日期核准" 2013-4-32“2013-32 -> 2013-03-04 19:22:21 +0000

您的问题应该通过固定时间和根据意图添加时区来解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15300807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档