推送时的 Git 本地提交时间戳

Posted

技术标签:

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

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

【问题讨论】:

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

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

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

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

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

【讨论】:

以上是关于推送时的 Git 本地提交时间戳的主要内容,如果未能解决你的问题,请参考以下文章

更改 Git/GitHub 存储库的作者姓名和电子邮件,为所有提交保留时间戳

shell脚本每天创建带有时间戳的文件夹并推送时间戳生成的日志

如何处理未提交的更改

SQL 获取时间戳差异大于 30 时的 id 计数

Laravel 迁移 - 创建时间戳时的问题

如何打开/关闭chrome控制台调试时的时间戳?