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

Git local commit timestamp when pushed

我有一个简单的问题。我正在本地开发一项功能,并且已经进行了大量提交,但尚未推送它们。一旦我推送了这些提交,它们是否会有本地提交时的时间戳(在 GitHub 中看到)或者推送时的时间戳?

任何提交的整个 text/data — 或者任何 Git object,事实上 — 严格地 read-only 从提交开始。这是因为它的真实名称是它的哈希 ID,它是通过 运行 在其内容(包括内部 Git object header 上使用加密安全哈希函数生成的有击败 certain known SHA-1 collisions) 的幸运副作用。

每个提交都有两个时间戳,一个用于 author-date,一个用于 committer-date。 git commit 命令通常在您 运行 git commit 时将这两个设置为“现在”。它们是提交数据的一部分(具体来说,是构成提交 object 本身的元数据的一部分),因此从您实际形成提交的那一刻起,这两个值将永远无法更改。

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

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