【问题标题】:Git local commit timestamp when pushed推送时的 Git 本地提交时间戳
【发布时间】:2021-07-10 02:05:21
【问题描述】:

我有一个简单的问题。我正在本地开发一项功能,并且已经做出了许多提交,但还没有推送它们。一旦我推送这些提交,它们是否会有本地提交时的时间戳(在 GitHub 中看到),或者更确切地说是推送时的时间戳?

【问题讨论】:

  • 在本地文件系统 (AFAIK) 上提交时,每个提交都应带有自己的时间戳记录。
  • @TimBiegeleisen 没错。自 UNIX 纪元以来,它将有几秒钟的时间和对时区的引用。检查任何修订,如git cat-file -p HEAD

标签: git github commit git-commit git-push


【解决方案1】:

任何提交的整个文本/数据——实际上是任何 Git 对象——从提交的那一刻起都是严格只读的。这是因为它的真实名称是它的哈希 ID,它是通过对其内容(包括内部 Git 对象标头,它具有击败 certain known SHA-1 collisions 的幸运副作用)运行加密安全哈希函数生成的。

每个提交都有两个时间戳,一个用于作者日期,一个用于提交者日期。 git commit 命令通常在您运行 git commit 时将这两个设置为“现在”。它们是提交数据的一部分(特别是构成提交对象本身的元数据的一部分),因此从您实际形成提交的那一刻起,这两个值就永远无法更改。

git log 命令通常会显示作者日期(仅);添加--pretty=fuller 以查看两者。

由于无法更改任何提交,因此您发送到其他地方的提交继续使用与您的提交相同的哈希 ID,将继续拥有其原始数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 2018-12-17
    • 2011-04-14
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2011-02-11
    • 2013-12-17
    相关资源
    最近更新 更多