推送时的 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 存储库的作者姓名和电子邮件,为所有提交保留时间戳