git - 推送时的 Git 本地提交时间戳
问题描述
我有一个简单的问题。我正在本地开发一项功能,并且已经做出了许多提交,但还没有推送它们。一旦我推送这些提交,它们是否会有本地提交时的时间戳(在 GitHub 中看到),或者更确切地说是推送时的时间戳?
解决方案
任何提交的整个文本/数据——或任何 Git 对象,事实上——从提交的那一刻起都是严格只读的。这是因为它的真实名称是它的哈希 ID,它是通过对其内容(包括内部 Git 对象标头,它具有击败某些已知 SHA-1 冲突的幸运副作用)运行加密安全哈希函数产生的。
每个提交都有两个时间戳,一个用于作者日期,一个用于提交者日期。该git commit
命令通常在您运行时将这两个设置为“现在” git commit
。它们是提交数据的一部分(特别是构成提交对象本身的元数据的一部分),因此从您实际形成提交的那一刻起,这两个值就永远无法更改。
该git log
命令通常会向您显示作者日期(仅);添加--pretty=fuller
以查看两者。
由于无法更改任何提交,因此您发送到其他地方的提交继续使用与您的提交相同的哈希 ID,将继续拥有其原始数据。
推荐阅读
- c++ - 拆分包含表情符号和拉丁字母的字符串
- sql - POSTGRESQL-将多行不同值的列转换为一行不同的列
- django - 使用正确的 URL 和数据测试 API 时 Pytest 失败
- c++ - 使用 std::filesystem 将文件夹从 USB 驱动器复制到 C: 驱动器
- javascript - 如何处理将数据持久化到数据库中的表单提交中断?
- flutter - Flutter apk 无法在物理设备上创建本地文本文件
- typescript - 在vscode中使用oclif,如何解决“如果没有引用...就无法命名推断的'flags'类型”问题?
- powershell - Powershell:从程序的自定义输出中过滤掉特定值
- php - Laravel 存储嵌套的 json
- snowflake-cloud-data-platform - 雪花检查模式是否存在