git - git 日志 --since=行为不端
问题描述
我有一个 git 存储库,其中包含由居住在不同时区的不同作者完成的提交。
我想查看git log
自纪元以来由秒定义的特定时间点以来使用的历史记录。
解决方案
您在这里有多个单独的问题,我认为并非所有问题都可以单独使用 Git 前端命令来解决。
首先,每个提交都有两个日期/时间戳。有一个作者日期字段和一个提交者日期字段。要查看两者,请使用git log --format=fuller
例如:
commit 5571d085b3c9c2aa9470a10bcf2b8518d3e4ec99
Merge: bedb914551 5cf8e06474
Author: Junio C Hamano <gitster pobox.com>
AuthorDate: Wed Jul 18 12:20:35 2018 -0700
Commit: Junio C Hamano <gitster pobox.com>
CommitDate: Wed Jul 18 12:20:35 2018 -0700
虽然两者通常完全相同(如本例所示),但有时它们并非如此:
commit 88a8ecaeaa87a84100c4eb49fb9af7a77977cc1b
Author: Stefan Beller <sbeller google.com>
AuthorDate: Thu Jun 28 19:10:48 2018 -0700
Commit: Junio C Hamano <gitster pobox.com>
CommitDate: Fri Jun 29 09:29:44 2018 -0700
--since
and--until
操作在提交者日期工作,但默认显示作者日期。请参阅我对如何让 git 在作者日期的指定日期范围内显示提交的回答? 另请参阅Tim Beigeleisen 的回答,它展示了如何使用格式化指令以适合在 awk 或类似文件中使用的特定格式提取特定日期。
剩下的问题是您已经确定的问题:时区信息很棘手。在这里,请参阅git: timezone 和时间戳格式,并注意格式化指令%ai
和%ci
不服从--date=
但%ad
和%cd
做。这些--date=
指令随着时间的推移而扩展,因此从 Git 2.14 开始,您可以使用--date=local
、--date=format-local:...
等(并且有测试以确保一切正常)。尤其参见提交6eced3ec5e5d7fbe61de2791e2627b1acf1246b3。
推荐阅读
- sql - MS SQL递归获取带有父ID的子ID
- android - 参数不在其范围内应该扩展
- react-native - 如何知道 ScrollView 内容是可滚动的还是不响应原生的?
- echarts - 如何使用 ECharts 操作关系图中的节点?
- c# - 我们称之为代码块
- javascript - 如何过滤掉复杂查询中的文本字段?
- javascript - 如何基于在我的 .ts 文件中的数组中搜索值数组来禁用和选中复选框
- c++ - 类的 C++ 友元函数无法访问封装的类
- php - HTML 电子邮件不适用于表格格式
- windows - 在 Windows 上使用 Linux 运行 Electron