git - 来自不同 git 命令的不同时间值
问题描述
我看到对于特定的提交,git 为不同的命令提供不同的时间戳值。
$ git show -s --format="%ci" ee9bb
2019-09-09 17:50:43 +0530
上面的命令显示时间值为17:50:43
虽然以下命令将时间值显示为17:24:01
$ git show -s ee9bb
commit ee9bb706c8fcc329fac4acf69ad6b684f1069170
Author: itsvamshers <itsvamshers@gmail.com>
Date: Mon Sep 9 17:24:01 2019 +0530
fixed country null issue
$ git log ee9bb
commit ee9bb706c8fcc329fac4acf69ad6b684f1069170
Author: itsvamshers <itsvamshers@gmail.com>
Date: Mon Sep 9 17:24:01 2019 +0530
谁能解释为什么会这样。我应该考虑哪一个。
解决方案
密切注意文档%ci
中的git log
具体细节(这里是 的直接链接%ci
,但它可能会随着时间的推移而失败):
%ci
提交者日期,类似 ISO 8601 的格式
现在看%ai
描述:
%ai
作者日期,类似 ISO 8601 的格式
一个使用提交者这个词,另一个使用作者这个词。
每次提交都有两个日期和时间戳!
%ci
打印提交者日期和时间戳。
%ai
打印作者日期和时间戳。
默认git log
输出使用作者日期,这就是%ci
显示不同日期的原因。
请注意,PRETTY FORMATS部分描述了您可以使用--pretty=fuller
的关键字格式。该fuller
格式包括日期和时间戳。
...我应该考虑哪一个
两者都有,或者两者都没有。这两个日期都可能是有意或无意的欺骗。使用一种或两种作为指示或提示,而不是绝对保证。
通常,如果您将现有提交复制到新提交,Git 将(至少在默认情况下)保留作者日期,但将您和现在设置为提交者和提交者日期。由于git cherry-pick
复制了现有的提交,因此樱桃挑选会发生这种情况。由于git rebase
在很大程度上是一系列自动化的挑选操作,这也往往发生在 rebase 上。
推荐阅读
- sql - 如何从总小时数的总和中获得百分比
- oracle-apex - Oracle Apex 阻止打开新选项卡和新窗口
- php - 使用php和sql从数据库中删除数据
- sql-server - 从本地 Azure 和备份数据库导出表
- javascript - 是否可以在 SSR Nuxt 应用程序中间件中调用本地存储?
- javascript - Magento 2.4.3 安装后未加载 css 和 js。在 url 'pub' 中丢失
- linux - 有条件地为特定列/单元格设置 bash 背景/前景色
- firebase - Firebase 安全问题
- android - Google Drive 403 '已超过未经验证使用的每日限制。继续使用需要注册'(已解决)
- google-cloud-storage - GoogleCloudStorage 重定向到另一个域