首页 > 解决方案 > 推送时的 Git 本地提交时间戳

问题描述

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

标签: gitgithubcommitgit-commitgit-push

解决方案


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

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

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

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


推荐阅读